結果
問題 |
No.447 ゆきこーだーの雨と雪 (2)
|
ユーザー |
|
提出日時 | 2022-11-03 23:18:08 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 122 ms / 2,000 ms |
コード長 | 842 bytes |
コンパイル時間 | 177 ms |
コンパイル使用メモリ | 82,524 KB |
実行使用メモリ | 79,232 KB |
最終ジャッジ日時 | 2024-07-18 05:23:05 |
合計ジャッジ時間 | 3,916 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 25 |
ソースコード
n = int(input()) l = list(map(int, input().split())) t = int(input()) queries = [] cnt = [0 for _ in range(n)] idx = {} names = [] for i in range(t): name, prob = input().split() prob = ord(prob) - ord("A") if idx.get(name, None) is None: idx[name] = len(idx) names.append(name) cnt[prob] += 1 s = 50 * l[prob] + (50 * l[prob]) * 5 // (4 + cnt[prob]) queries.append((idx[name], prob, s)) last = [t + 1 for _ in range(len(idx))] score = [[0 for _ in range(n + 1)] for _ in range(len(idx))] for k in range(t): i, j, s = queries[k] score[i][j] += s last[i] = k for i in range(len(idx)): score[i][n] = sum(score[i]) ranking = [i for i in range(len(idx))] ranking.sort(key=lambda x: (- score[x][-1], last[x])) for i in range(len(idx)): x = ranking[i] print(f"{i + 1} {names[x]} " + " ".join(map(str, score[x])))