結果
問題 |
No.20 砂漠のオアシス
|
ユーザー |
![]() |
提出日時 | 2015-08-01 13:51:15 |
言語 | PyPy2 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 761 bytes |
コンパイル時間 | 193 ms |
コンパイル使用メモリ | 76,844 KB |
実行使用メモリ | 80,560 KB |
最終ジャッジ日時 | 2024-10-13 05:23:15 |
合計ジャッジ時間 | 3,353 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 17 WA * 4 |
ソースコード
N,V,ox,oy=map(int,raw_input().split()) ox-=1;oy-=1 L=[] for _ in xrange(N): L.append(map(int,raw_input().split())) dxdy=zip([-1,0,1,0],[0,-1,0,1]) que=[[0,0,1]] visited=[] maxV=[[-1]*N for _ in xrange(N)] maxV[0][0]=V while que:#bfs cx,cy,count=que.pop(0) v=maxV[cy][cx] for dx,dy in dxdy: nx,ny=cx+dx,cy+dy if not(0<=nx<N and 0<=ny<N):continue# in field? nv=v-L[ny][nx] if nv<=0:continue#death if nx==N-1 and ny==N-1 and nv>=0: print 'YES' exit() if cx==ox and cy==oy and count>0:#oasis nv=nv*2 count-=1 if maxV[ny][nx]<nv and ([nx,ny,0] or [nx,ny,1] not in que): que.append([nx,ny,count]) maxV[ny][nx]=nv print 'NO'