結果
| 問題 | No.568 じゃんじゃん 落とす 委員会 | 
| コンテスト | |
| ユーザー |  hahho | 
| 提出日時 | 2024-08-06 19:30:16 | 
| 言語 | PyPy3 (7.3.15) | 
| 結果 | 
                                AC
                                 
                             | 
| 実行時間 | 550 ms / 1,000 ms | 
| コード長 | 909 bytes | 
| コンパイル時間 | 544 ms | 
| コンパイル使用メモリ | 82,432 KB | 
| 実行使用メモリ | 111,364 KB | 
| 最終ジャッジ日時 | 2024-08-06 19:30:25 | 
| 合計ジャッジ時間 | 8,536 ms | 
| ジャッジサーバーID (参考情報) | judge3 / judge1 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| other | AC * 26 | 
ソースコード
L = 100001
n,m = map(int,input().split())
people = [tuple(map(int,input().split())) for _ in range(n)]
by_a = [[] for _ in range(L)]
by_b = [[] for _ in range(L)]
for x,a,b in people:
    by_a[a].append((x, b))
    by_b[b].append((x, a))
def it():
    c0 = sum(int(x >= 1) for x, a, b in people)
    c1 = sum(int(x >= 2) for x, a, b in people)
    sa = 0
    sb = L
    while sa <= L:
        if sa > 0:
            for x, b in by_a[sa-1]:
                x += int(b>=sb)
                if x == 1:
                    c0 -= 1
                elif x == 2:
                    c1 -= 1
        while c0 < m and 0 < sb:
            sb -= 1
            for x, a in by_b[sb]:
                x += int(a>=sa)
                if x == 1:
                    c0 += 1
                elif x == 2:
                    c1 += 1
        if c0 < m:
            return
        yield c1
        sa += 1
print(min(it()))
            
            
            
        