結果

問題 No.568 じゃんじゃん 落とす 委員会
ユーザー Ryoma IshiiRyoma Ishii
提出日時 2024-01-16 02:23:12
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 326 ms / 1,000 ms
コード長 1,438 bytes
コンパイル時間 304 ms
コンパイル使用メモリ 82,532 KB
実行使用メモリ 95,660 KB
最終ジャッジ日時 2024-09-28 02:25:46
合計ジャッジ時間 7,048 ms
ジャッジサーバーID
(参考情報)
judge4 / judge3
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 298 ms
94,824 KB
testcase_01 AC 294 ms
95,160 KB
testcase_02 AC 125 ms
83,308 KB
testcase_03 AC 123 ms
83,200 KB
testcase_04 AC 133 ms
83,200 KB
testcase_05 AC 115 ms
83,456 KB
testcase_06 AC 127 ms
83,072 KB
testcase_07 AC 128 ms
83,236 KB
testcase_08 AC 106 ms
82,944 KB
testcase_09 AC 111 ms
83,712 KB
testcase_10 AC 115 ms
83,456 KB
testcase_11 AC 125 ms
83,072 KB
testcase_12 AC 271 ms
94,472 KB
testcase_13 AC 326 ms
95,136 KB
testcase_14 AC 298 ms
95,148 KB
testcase_15 AC 319 ms
95,256 KB
testcase_16 AC 311 ms
95,660 KB
testcase_17 AC 285 ms
94,748 KB
testcase_18 AC 315 ms
95,140 KB
testcase_19 AC 317 ms
94,988 KB
testcase_20 AC 292 ms
95,128 KB
testcase_21 AC 317 ms
94,368 KB
testcase_22 AC 280 ms
95,436 KB
testcase_23 AC 125 ms
83,072 KB
testcase_24 AC 115 ms
83,456 KB
testcase_25 AC 117 ms
83,288 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

N,M = map(int,input().split())
W = 10**5+10
X = []
C = [0,0,0,0,0,0]
A = [[] for _ in range(W)]
B = [[] for _ in range(W)]
for n in range(N):
    x,a,b = map(int,input().split())
    X.append(x+1)#A問題は全生徒が答えられる前提、すなわちA難易度0でスタートする、Bの難易度は最大
    C[x+1] += 1
    A[a].append(n)
    B[b].append(n)
SA = 0; SB = W
ans = W
while True:
    if SA >= W:
        break
    if sum(C[2:])>=M and sum(C[3:])<ans:#二完以上が2人で、3完以上をansより小さいなら更新する
        ans = sum(C[3:])
    for a in A[SA]:#Aの難易度SAの配列にはいってるSAまで完答できる人のID、これからAの難易度を1上げるのでその人のデータの調整
        C[X[a]] -= 1#難易度をあげると答えられなくなった生徒が3完→2完というようになるので引く
        X[a] -= 1#IDがaの生徒の完答数情報をさげる
        C[X[a]] += 1#2完の生徒が増えたので、C情報にいれる
    SA += 1#Aの難易度をここで反映させる
    while SB > 0 and sum(C[2:]) < M:#Aの難易度を上げすぎて、2完がM人以下になってしまったときBの難易度を下げる
        SB -= 1#難易度をさげて
        for b in B[SB]:#ボーダーにいた生徒は完答できるようになるので、それを反映
            C[X[b]] -= 1
            X[b] += 1
            C[X[b]] += 1
print(ans)
0