結果
| 問題 |
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()
はむ吉🐹