結果
| 問題 |
No.2509 Beam Shateki
|
| コンテスト | |
| ユーザー |
navel_tos
|
| 提出日時 | 2023-10-20 21:48:13 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 708 ms / 2,000 ms |
| コード長 | 1,289 bytes |
| コンパイル時間 | 208 ms |
| コンパイル使用メモリ | 82,464 KB |
| 実行使用メモリ | 77,688 KB |
| 最終ジャッジ日時 | 2024-09-20 18:14:23 |
| 合計ジャッジ時間 | 20,883 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 61 |
ソースコード
#yukicoder409B
from collections import deque as dq
#入力受取
H,W=map(int,input().split())
A=[[0]*(W+3)]+[[0]+list(map(int,input().split()))+[0]*2 for _ in range(H)]+[[0]*(W+3)]*2
#biimは4方向(テンキー1236方向)にのみ撃てればOK 撃つべき位置を列挙
check=[(h,w) for h in range(H+2) for w in range(W+2) if h in set([0,H+1]) or w in set([0,W+1])]
way=[(-1,-1),(0,-1),(1,-1),(1,0)]
#実際に撃ってみる 処理は「0のマスに侵入したら終了」
ans=0
for i in range(len(check)): #初発
sx,sy=check[i]
for x in range(4): #方向
visited=set(); cnt=0; wx,wy=way[x]; nx,ny=sx,sy
while 1:
nx,ny=nx+wx,ny+wy
if A[nx][ny]==0: break
visited.add((nx,ny)); cnt+=A[nx][ny]
#変な方向にbiimしていたら打ち切り
if len(visited)==0: continue
for j in range(i,len(check)): #次発
tx,ty=check[j]
for y in range(4):
xx,xy=way[y]; mx,my=tx,ty; cnt2=0
while 1:
mx,my=mx+xx,my+xy
if A[mx][my]==0: break
if (mx,my) in visited: continue
cnt2+=A[mx][my]
#答えを更新
ans=max(ans,cnt+cnt2)
print(ans)
navel_tos