結果

問題 No.433 ICPC国内予選の選抜ルールがこんな感じだったらうれしい
ユーザー chocorusk
提出日時 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
権限があれば一括ダウンロードができます

ソースコード

diff #

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