結果
問題 |
No.2623 Room Allocation
|
ユーザー |
![]() |
提出日時 | 2024-01-16 13:24:44 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 225 ms / 2,000 ms |
コード長 | 541 bytes |
コンパイル時間 | 370 ms |
コンパイル使用メモリ | 82,328 KB |
実行使用メモリ | 99,752 KB |
最終ジャッジ日時 | 2024-09-28 02:28:33 |
合計ジャッジ時間 | 5,929 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 30 |
ソースコード
N, X, Y = map(int, input().split()) assert 1 <= N <= 200000 assert 0 <= X <= 200000 assert 0 <= Y <= 200000 assert X + Y >= 1 P = [] C = [] for _ in range(N): p, c = map(str, input().split()) P.append(int(p)) C.append(c) diffs = [0 for _ in range(X + Y)] for i in range(N): if C[i] == 'A': diffs[i % (X + Y)] += P[i] else: diffs[i % (X + Y)] -= P[i] diffs.sort() # print(diffs) ans = sum(P) for i in range(X + Y): if i >= Y: ans += diffs[i] else: ans -= diffs[i] print(ans // 2)