Submission #14404944


Source Code Expand

import sys
from heapq import heappop, heappush, heapify

read = sys.stdin.buffer.read
readline = sys.stdin.buffer.readline
readlines = sys.stdin.buffer.readlines

n_cls = 200_000

N, Q = map(int, readline().split())
m = map(int, read().split())
ABCD = tuple(zip(m, m))
AB = ABCD[:N]
CD = ABCD[N:]

enji_rate = [0] * (N + 1)
enji_cls = [0] * (N + 1)
cls_rate = [[] for _ in range(n_cls + 1)]

for i, (a, b) in enumerate(AB, 1):
    enji_rate[i] = a
    enji_cls[i] = b
    heappush(cls_rate[b], (-a, i))

def max_rate_in_cls(c):
    q = cls_rate[c]
    while q:
        x, enj = q[0]
        if enji_cls[enj] == c:
            return -x
        else:
            heappop(q)
    return 0

max_rate = []
for c in range(n_cls + 1):
    x = max_rate_in_cls(c)
    if x:
        max_rate.append((x, c))
heapify(max_rate)

def max_rate_in_cls(c):
    q = cls_rate[c]
    while q:
        x, enj = q[0]
        if enji_cls[enj] == c:
            return -x
        else:
            heappop(q)
    return 0

def get_ans():
    q = max_rate
    while True:
        x, c = q[0]
        if max_rate_in_cls(c) == x:
            return x
        heappop(q)

for enj, after_cls in CD:
    before_cls = enji_cls[enj]
    heappush(cls_rate[after_cls], (-enji_rate[enj], enj))
    enji_cls[enj] = after_cls
    for c in (before_cls, after_cls):
        x = max_rate_in_cls(c)
        if x != 0:
            heappush(max_rate, (x, c))
    print(get_ans())

Submission Info

Submission Time
Task E - Smart Infants
User maspy
Language Python (3.8.2)
Score 500
Code Size 1503 Byte
Status AC
Exec Time 1615 ms
Memory 166716 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 500 / 500
Status AC
AC × 11
Set Name Test Cases
Sample
All handmade02, handmade03, handmade04, handmade05, handmade06, handmade07, handmade08, handmade09, random10, sample00, sample01
Case Name Status Exec Time Memory
handmade02 AC 105 ms 23108 KiB
handmade03 AC 104 ms 23348 KiB
handmade04 AC 104 ms 23468 KiB
handmade05 AC 982 ms 71056 KiB
handmade06 AC 1210 ms 158160 KiB
handmade07 AC 1251 ms 159152 KiB
handmade08 AC 1508 ms 145664 KiB
handmade09 AC 1511 ms 146060 KiB
random10 AC 1615 ms 166716 KiB
sample00 AC 99 ms 22948 KiB
sample01 AC 105 ms 22944 KiB