結果
問題 | No.433 ICPC国内予選の選抜ルールがこんな感じだったらうれしい |
ユーザー |
![]() |
提出日時 | 2020-09-27 00:37:12 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 1,913 ms / 4,000 ms |
コード長 | 799 bytes |
コンパイル時間 | 217 ms |
コンパイル使用メモリ | 82,432 KB |
実行使用メモリ | 278,608 KB |
最終ジャッジ日時 | 2024-06-30 01:36:02 |
合計ジャッジ時間 | 67,170 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 48 |
ソースコード
import sys read=sys.stdin.buffer.read readline=sys.stdin.buffer.readline readlines=sys.stdin.buffer.readlines n, k=map(int, readline().split()) spu=list(map(int, read().split())) s=spu[::3] p=spu[1::3] u=spu[2::3] ans=[] v0=[[] for _ in range(100001)] for i in range(n): v0[u[i]].append(i) v0.sort(key=lambda w: -len(w)) import copy def solve(t): global ans v=copy.deepcopy(v0) for w in v: w.sort(key=lambda i: s[i]*(10**7)-p[i]) while True: if not v[0]: break tops=[] for w in v: if not w: break i=w.pop() if s[i]==t: tops.append(i) tops.sort(key=lambda i: p[i]) ans+=tops for i in range(10, -1, -1): solve(i) print('\n'.join(map(str, ans[:k])))