結果
問題 | No.5017 Tool-assisted Shooting |
ユーザー |
![]() |
提出日時 | 2023-07-16 15:41:39 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 127 ms / 2,000 ms |
コード長 | 1,741 bytes |
コンパイル時間 | 228 ms |
コンパイル使用メモリ | 10,936 KB |
実行使用メモリ | 24,480 KB |
スコア | 240,338 |
平均クエリ数 | 352.31 |
最終ジャッジ日時 | 2023-07-16 15:41:52 |
合計ジャッジ時間 | 11,749 ms |
ジャッジサーバーID (参考情報) |
judge11 / judge12 |
純コード判定しない問題か言語 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 100 |
ソースコード
import sysinput = sys.stdin.readline# 次の敵を倒したときの、(耐久力+パワー)/ターン数# が最大になる行動を貪欲に選ぶ。SUM=0XS=[[] for i in range(25)]ji=12for tests in range(1000):n=int(input())if n==-1:breakfor i in range(n):h,p,x=map(int,input().split())XS[x].append([h,h,p,59]) # 初期耐久, 現在の耐久, パワー, 現在の座標attack=1+SUM//100best=0ind="S"if XS[ji]==[]:passelse:h1,h2,p,za=XS[ji][0]turn=(h2+attack-1)//attackif za>=turn:best=(h1+p)/turnelif za==1:ind="L"if XS[(ji-1)%25] and XS[(ji-1)%25][0][-1]>1:for i in range(1,11):if XS[(ji-i)%25]==[]:continueh1,h2,p,za=XS[(ji-i)%25][0]turn=(h2+attack-1)//attack+iif za>=turn and best<(h1+p)/turn:best=(h1+p)/turnind="L"if XS[(ji+1)%25] and XS[(ji+1)%25][0][-1]>1:for i in range(1,11):if XS[(ji+i)%25]==[]:continueh1,h2,p,za=XS[(ji+i)%25][0]turn=(h2+attack-1)//attack+iif za>=turn and best<(h1+p)/turn:best=(h1+p)/turnind="R"print(ind,flush=True)if ind=="L":ji=(ji-1)%25elif ind=="R":ji=(ji+1)%25if XS[ji]==[]:passelse:XS[ji][0][1]-=attackif XS[ji][0][1]<=0:SUM+=XS[ji][0][2]XS[ji].pop(0)for i in range(25):for j in range(len(XS[i])):XS[i][j][-1]-=1if XS[i] and XS[i][0][-1]<=0:XS[i].pop(0)