PythonでJOI難易度5を埋める #24

contest - コンテスト (Contest)

考えたこと
与えられたlogを読んで,うまく処理する

n, m, t, x, y = map(int, input().split())
p = [int(input()) for _ in range(m)]

logs_time = []
logs_player = []
logs_problem = []
logs_state = []

for i in range(y):
    a, b, c, d = input().split()
    logs_time.append(int(a))
    logs_player.append(int(b) - 1)
    logs_problem.append(int(c) - 1)
    logs_state.append(d)

players = [0] * n
cnt_incorrect = [[0] * n for _ in range(m)]
open_time  = [[0] * n for _ in range(m)] #i番目の問題をj人目がいつOPENしたか

for i in range(y):
    if logs_state[i] == 'open':
        open_time[logs_problem[i]][logs_player[i]] = logs_time[i]
    if logs_state[i] == 'correct':
        players[logs_player[i]] += max(p[logs_problem[i]] - (logs_time[i] - open_time[logs_problem[i]][logs_player[i]]) - 120 * cnt_incorrect[logs_problem[i]][logs_player[i]], x)
    if logs_state[i] == 'incorrect':
        cnt_incorrect[logs_problem[i]][logs_player[i]] += 1

for i in range(n):
    print(players[i])