結果

問題 No.568 じゃんじゃん 落とす 委員会
ユーザー 👑 hahhohahho
提出日時 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
権限があれば一括ダウンロードができます

ソースコード

diff #

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()))
0