結果
| 問題 |
No.161 制限ジャンケン
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2017-08-12 23:13:45 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
AC
|
| 実行時間 | 33 ms / 5,000 ms |
| コード長 | 526 bytes |
| コンパイル時間 | 138 ms |
| コンパイル使用メモリ | 12,544 KB |
| 実行使用メモリ | 10,752 KB |
| 最終ジャッジ日時 | 2024-11-30 05:17:42 |
| 合計ジャッジ時間 | 1,458 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 16 |
ソースコード
# -*- coding: utf-8 -*-
G, C, P = map(int, input().split())
S = input()
g=c=p=0
for s in S:
if s=='G':
g += 1
elif s=='C':
c += 1
else:
p += 1
score = 0
# G,C,Pをまず勝てる方向で費やす
score += 3*(min(G,c)+min(C,p)+min(P,g))
temp_G = G
temp_C = C
temp_P = P
G = max(0, G-c)
C = max(0, C-p)
P = max(0, P-g)
g = max(0, g-temp_P)
c = max(0, c-temp_G)
p = max(0, p-temp_C)
# 残りは出来る限りあいこの方向で費やす
score += min(G,g)+min(C,c)+min(P,p)
print(score)