結果
| 問題 |
No.2982 Logic Battle
|
| コンテスト | |
| ユーザー |
titia
|
| 提出日時 | 2024-12-07 01:06:30 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 193 ms / 2,000 ms |
| コード長 | 1,722 bytes |
| コンパイル時間 | 288 ms |
| コンパイル使用メモリ | 82,304 KB |
| 実行使用メモリ | 78,028 KB |
| 最終ジャッジ日時 | 2024-12-07 01:06:36 |
| 合計ジャッジ時間 | 6,453 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 38 |
ソースコード
from operator import itemgetter
N=int(input())
DP0=[(0,0)]
DP1=[(0,0)]
DP2=[(0,0)]
for i in range(N):
#print(DP0,DP1,DP2)
a,b,c=map(int,input().split())
NDP0=[]
NDP1=[]
NDP2=[]
for x,y in DP0:
attack=b+x
damage=y+attack
attack-=1
attack=max(attack,0)
NDP1.append((attack,damage))
attack=c+x
damage=y+attack
attack-=1
attack=max(attack,0)
NDP2.append((attack,damage))
for x,y in DP1:
attack=a+x
damage=y+attack
attack-=1
attack=max(attack,0)
NDP0.append((attack,damage))
attack=c+x
damage=y+attack
attack-=1
attack=max(attack,0)
NDP2.append((attack,damage))
for x,y in DP2:
attack=a+x
damage=y+attack
attack-=1
attack=max(attack,0)
NDP0.append((attack,damage))
attack=b+x
damage=y+attack
attack-=1
attack=max(attack,0)
NDP1.append((attack,damage))
NDP0.sort(key=itemgetter(1),reverse=True)
NDP0.sort(key=itemgetter(0),reverse=True)
DP0=[]
for x,y in NDP0:
if DP0 and DP0[-1][1]>=y:
continue
DP0.append((x,y))
NDP1.sort(key=itemgetter(1),reverse=True)
NDP1.sort(key=itemgetter(0),reverse=True)
DP1=[]
for x,y in NDP1:
if DP1 and DP1[-1][1]>=y:
continue
DP1.append((x,y))
NDP2.sort(key=itemgetter(1),reverse=True)
NDP2.sort(key=itemgetter(0),reverse=True)
DP2=[]
for x,y in NDP2:
if DP2 and DP2[-1][1]>=y:
continue
DP2.append((x,y))
ANS=0
for x,y in DP0+DP1+DP2:
ANS=max(ANS,y)
print(ANS)
titia