提出 #69958477


ソースコード 拡げる

"""
<方針>
- 毎クエリ `O(Q)` で全てのPCのバージョンを見て `O(N)` しまうと、`O(NQ)` で間に合わない。
- PCのバージョンがそれぞれ何個あるか `versions` を持たせる。
- 常に最低バージョンが何か `mi` を保持させておけば、毎クエリ `N` 個も見ることはない。
- したがって、全体として、`O(N+Q)` で処理できる。
"""
N, Q = map(int, input().split())

# i番目のバージョンを持つPCはいくつあるか。
versions = [1]*N

# 存在する最低バージョン
mi = 0

for _ in range(Q):
  X, Y = map(int, input().split())
  X -= 1
  Y -= 1
  
  # 更新するPCの個数をカウント
  ans = 0
  # 最低バージョンからループさせれば、間に合う。
  for i in range(mi, X+1):
    ans += versions[i]
    versions[i] = 0 # ここはコメントアウトしても多分通る。
  
  # 個数を変える
  versions[Y] += ans
  
  # PCを更新できたら、そのバージョンが最低バージョンとなる。
  if(ans > 0):
    mi = X+1
  
  # 出力
  print(ans)

提出情報

提出日時
問題 C - Upgrade Required
ユーザ mattsunkun
言語 Python (PyPy 3.10-v7.3.12)
得点 300
コード長 1122 Byte
結果 AC
実行時間 396 ms
メモリ 91276 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 300 / 300
結果
AC × 1
AC × 26
セット名 テストケース
Sample sample_01.txt
All hand_01.txt, hand_02.txt, hand_03.txt, sample_01.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt
ケース名 結果 実行時間 メモリ
hand_01.txt AC 372 ms 90796 KiB
hand_02.txt AC 369 ms 90720 KiB
hand_03.txt AC 363 ms 91196 KiB
sample_01.txt AC 58 ms 76500 KiB
test_01.txt AC 57 ms 76272 KiB
test_02.txt AC 393 ms 90756 KiB
test_03.txt AC 396 ms 90560 KiB
test_04.txt AC 396 ms 91104 KiB
test_05.txt AC 368 ms 90868 KiB
test_06.txt AC 367 ms 90936 KiB
test_07.txt AC 374 ms 91060 KiB
test_08.txt AC 374 ms 91020 KiB
test_09.txt AC 366 ms 90804 KiB
test_10.txt AC 357 ms 83092 KiB
test_11.txt AC 357 ms 83084 KiB
test_12.txt AC 351 ms 83044 KiB
test_13.txt AC 354 ms 82804 KiB
test_14.txt AC 390 ms 91276 KiB
test_15.txt AC 369 ms 90984 KiB
test_16.txt AC 390 ms 90752 KiB
test_17.txt AC 386 ms 91124 KiB
test_18.txt AC 370 ms 90928 KiB
test_19.txt AC 391 ms 90968 KiB
test_20.txt AC 378 ms 90932 KiB
test_21.txt AC 388 ms 90992 KiB
test_22.txt AC 385 ms 91020 KiB