結果
問題 | No.433 ICPC国内予選の選抜ルールがこんな感じだったらうれしい |
ユーザー |
![]() |
提出日時 | 2016-10-15 15:41:32 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 931 ms / 4,000 ms |
コード長 | 847 bytes |
コンパイル時間 | 90 ms |
コンパイル使用メモリ | 12,672 KB |
実行使用メモリ | 59,276 KB |
最終ジャッジ日時 | 2024-11-22 11:33:02 |
合計ジャッジ時間 | 29,377 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 48 |
ソースコード
#!/usr/bin/env python3 import collections import heapq def team_key(team): return (-team[0], team[1], team[2], team[3]) def main(): n, k = map(int, input().split()) data = [tuple(map(int, input().split())) for _ in range(n)] univ = collections.defaultdict(list) for i in range(n): u = data[i][2] univ[u].append(i) local_ranks = [-1 for _ in range(n)] for v in univ.values(): v.sort(key=lambda i: (-data[i][0], data[i][1])) for r, i in enumerate(v): local_ranks[i] = r ts = [(data[i][0], local_ranks[i], data[i][1], i) for i in range(n)] if k < n // 3: print(*(t[-1] for t in heapq.nsmallest(k, ts, key=team_key)), sep="\n") else: ts.sort(key=team_key) print(*(t[-1] for t in ts[:k]), sep="\n") if __name__ == '__main__': main()