結果

問題 No.447 ゆきこーだーの雨と雪 (2)
ユーザー c-yan
提出日時 2020-11-18 07:23:07
言語 Python3
(3.13.1 + numpy 2.2.1 + scipy 1.14.1)
結果
AC  
実行時間 103 ms / 2,000 ms
コード長 882 bytes
コンパイル時間 123 ms
コンパイル使用メモリ 12,800 KB
実行使用メモリ 12,928 KB
最終ジャッジ日時 2024-07-23 08:50:41
合計ジャッジ時間 3,344 ms
ジャッジサーバーID
(参考情報)
judge2 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 25
権限があれば一括ダウンロードができます

ソースコード

diff #

N = int(input())
L = list(map(int, input().split()))
T = int(input())

a = ''.join(chr(ord('A') + i) for i in range(N))

base_score = {}
acs = {}
for c in a:
    base_score[c] = L[ord(c) - ord('A')]
    acs[c] = 0

def score(c):
    acs[c] += 1
    return int(50 * base_score[c] + 50 * base_score[c] / (0.8 + 0.2 * acs[c]))

result = {}
for i in range(T):
    Name, P = input().split()
    if Name in result:
        s, _, r = result[Name]
    else:
        s = 0
        r = {}
    j = score(P)
    r[P] = j
    s += j
    result[Name] = [s, -i, r]

result = sorted(([result[k][0], result[k][1], k, result[k][2]] for k in result), reverse=True)
for i in range(len(result)):
    r = result[i]
    t = []
    t.append(i + 1)
    t.append(r[2])
    for c in a:
        if c in r[3]:
            t.append(r[3][c])
        else:
            t.append(0)
    t.append(r[0])
    print(*t)
0