結果
| 問題 |
No.2804 Fixer And Ratism
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2024-07-04 08:09:37 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 1,206 ms / 2,000 ms |
| コード長 | 979 bytes |
| コンパイル時間 | 479 ms |
| コンパイル使用メモリ | 82,464 KB |
| 実行使用メモリ | 77,952 KB |
| 最終ジャッジ日時 | 2024-08-13 02:10:56 |
| 合計ジャッジ時間 | 15,540 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 31 |
ソースコード
N,Q=map(int,input().split())
assert 1<=N<=100
assert 1<=Q<=100000
beforeuser=set()
beforerate=set()
goodbyeuser=set()
there=[]
for _ in range(Q):
t,*q=input().split()
if t=="1":
assert 0<=int(q[1])<=4000
assert int(q[1]) not in beforerate
beforerate.add(int(q[1]))
assert q[0] not in beforeuser
beforeuser.add(q[0])
assert len(beforeuser)<=100
there.append((int(q[1]),q[0]))
elif t=="2":
N-=int(q[0])
else:
assert q[0] in beforeuser
assert q[0] not in goodbyeuser
N+=int(q[1])
for i in range(len(there)):
if there[i][1]==q[0]:
there[i]=(there[i][0]%998244353+998244353,q[0])
assert N>=1
there.sort(reverse=True)
goodbye=[]
while len(there)>N:
goodbyeuser.add(there[-1][1])
goodbye.append((there[-1][0]%998244353,there[-1][1]))
there.pop()
goodbye.sort()
for i in goodbye:
print(i[1])