結果

問題 No.568 じゃんじゃん 落とす 委員会
ユーザー Ryoma IshiiRyoma Ishii
提出日時 2024-01-16 02:23:12
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 385 ms / 1,000 ms
コード長 1,438 bytes
コンパイル時間 435 ms
コンパイル使用メモリ 81,572 KB
実行使用メモリ 95,172 KB
最終ジャッジ日時 2024-01-16 02:23:22
合計ジャッジ時間 9,248 ms
ジャッジサーバーID
(参考情報)
judge15 / judge11
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 323 ms
94,948 KB
testcase_01 AC 361 ms
94,952 KB
testcase_02 AC 138 ms
82,756 KB
testcase_03 AC 138 ms
82,776 KB
testcase_04 AC 137 ms
82,760 KB
testcase_05 AC 122 ms
82,880 KB
testcase_06 AC 138 ms
82,768 KB
testcase_07 AC 138 ms
82,756 KB
testcase_08 AC 109 ms
82,776 KB
testcase_09 AC 133 ms
83,004 KB
testcase_10 AC 121 ms
83,004 KB
testcase_11 AC 138 ms
82,760 KB
testcase_12 AC 330 ms
94,500 KB
testcase_13 AC 385 ms
94,592 KB
testcase_14 AC 367 ms
94,588 KB
testcase_15 AC 385 ms
94,572 KB
testcase_16 AC 379 ms
95,172 KB
testcase_17 AC 319 ms
94,556 KB
testcase_18 AC 364 ms
94,576 KB
testcase_19 AC 372 ms
94,436 KB
testcase_20 AC 352 ms
94,580 KB
testcase_21 AC 364 ms
94,272 KB
testcase_22 AC 330 ms
94,960 KB
testcase_23 AC 140 ms
82,760 KB
testcase_24 AC 122 ms
82,884 KB
testcase_25 AC 123 ms
82,884 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