結果
| 問題 | No.568 じゃんじゃん 落とす 委員会 | 
| コンテスト | |
| ユーザー |  titia | 
| 提出日時 | 2024-12-18 03:40:04 | 
| 言語 | PyPy3 (7.3.15) | 
| 結果 | 
                                AC
                                 
                             | 
| 実行時間 | 309 ms / 1,000 ms | 
| コード長 | 1,014 bytes | 
| コンパイル時間 | 3,929 ms | 
| コンパイル使用メモリ | 82,072 KB | 
| 実行使用メモリ | 104,336 KB | 
| 最終ジャッジ日時 | 2024-12-18 03:40:17 | 
| 合計ジャッジ時間 | 12,895 ms | 
| ジャッジサーバーID (参考情報) | judge5 / judge1 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| other | AC * 26 | 
ソースコード
import sys
input = sys.stdin.readline
N,M=map(int,input().split())
P=[list(map(int,input().split())) for i in range(N)]
ANS=[0]*N
TWO=0
THREE=0
LIST=[[] for i in range(10**5+2)]
LIST2=[[] for i in range(10**5+2)]
for i in range(N):
    ANS[i]=P[i][0]
    LIST[P[i][1]].append(i)
    LIST2[P[i][2]].append(i)
for i in range(N):
    if ANS[i]>=2:
        TWO+=1
    if ANS[i]>=3:
        THREE+=1
LANS=10**6
if TWO>=M:
    LANS=THREE
SA=-1
SB=100001
for i in range(N):
    ANS[i]+=1
    if ANS[i]==2:
        TWO+=1
    if ANS[i]==3:
        THREE+=1
if TWO>=M:
    LANS=min(LANS,THREE)
for SA in range(10**5+2):
    for x in LIST[SA]:
        ANS[x]-=1
        if ANS[x]==2:
            THREE-=1
        if ANS[x]==1:
            TWO-=1
    while TWO<M and SB>0:
        SB-=1
        for x in LIST2[SB]:
            ANS[x]+=1
            if ANS[x]==2:
                TWO+=1
            if ANS[x]==3:
                THREE+=1
    if TWO>=M:
        LANS=min(LANS,THREE)
        
print(LANS)
    
            
            
            
        