結果
| 問題 |
No.3130 Twin's Add Max Min Game
|
| コンテスト | |
| ユーザー |
👑 SPD_9X2
|
| 提出日時 | 2025-04-25 22:20:55 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 203 ms / 2,000 ms |
| コード長 | 840 bytes |
| コンパイル時間 | 332 ms |
| コンパイル使用メモリ | 82,588 KB |
| 実行使用メモリ | 119,400 KB |
| 最終ジャッジ日時 | 2025-04-25 22:21:07 |
| 合計ジャッジ時間 | 11,591 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 56 |
ソースコード
"""
https://yukicoder.me/problems/no/3130
数字は小さいほうから出す?
価値は add > max > min だから
小さいほうから出すとすると
add ...
9 9 8 5 4 4 3 3 2
後手はminを取っておけば、最後よりは抑えられる. つまり9以下
さらに小さくするためには
min,min,min,max,max,max,add,add か?
1つ目のmaxは、addを消化できる。
"""
N = int(input())
A = list(map(int,input().split()))
A.sort()
B = list(input().split())
for i in range(N):
if B[i] == "add":
B[i] = "max"
break
B.sort()
# print (A,B)
add = 0
maxmax = 0
minmin = float("inf")
for na,nb in zip(A,B):
if nb == "add":
add += na
elif nb == "max":
maxmax = max(maxmax, na)
else:
minmin = min(minmin, na)
ans = min(minmin, maxmax+add)
print (ans)
SPD_9X2