結果
| 問題 |
No.161 制限ジャンケン
|
| コンテスト | |
| ユーザー |
lam6er
|
| 提出日時 | 2025-03-20 21:06:57 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 36 ms / 5,000 ms |
| コード長 | 772 bytes |
| コンパイル時間 | 580 ms |
| コンパイル使用メモリ | 82,424 KB |
| 実行使用メモリ | 53,896 KB |
| 最終ジャッジ日時 | 2025-03-20 21:07:07 |
| 合計ジャッジ時間 | 1,700 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 16 |
ソースコード
G, C, P = map(int, input().split())
S = input().strip()
s_g = S.count('G')
s_c = S.count('C')
s_p = S.count('P')
# Step 1: Calculate wins
p_win = min(s_g, P)
points = 3 * p_win
remaining_p = P - p_win
remaining_g_s = s_g - p_win
g_win = min(s_c, G)
points += 3 * g_win
remaining_g = G - g_win
remaining_c_s = s_c - g_win
c_win = min(s_p, C)
points += 3 * c_win
remaining_c = C - c_win
remaining_p_s = s_p - c_win
# Step 2: Calculate draws
draw_g = min(remaining_g_s, remaining_g)
points += draw_g
remaining_g -= draw_g
remaining_g_s -= draw_g
draw_c = min(remaining_c_s, remaining_c)
points += draw_c
remaining_c -= draw_c
remaining_c_s -= draw_c
draw_p = min(remaining_p_s, remaining_p)
points += draw_p
remaining_p -= draw_p
remaining_p_s -= draw_p
print(points)
lam6er