結果
問題 | No.1283 Extra Fee |
ユーザー |
![]() |
提出日時 | 2020-11-06 22:46:27 |
言語 | cLay (20241019-1) |
結果 |
AC
|
実行時間 | 113 ms / 2,000 ms |
コード長 | 872 bytes |
コンパイル時間 | 3,309 ms |
コンパイル使用メモリ | 175,548 KB |
実行使用メモリ | 19,324 KB |
最終ジャッジ日時 | 2024-11-16 06:48:45 |
合計ジャッジ時間 | 6,060 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 30 |
ソースコード
ll fe[512][512]; { ll @n,@m; rep(m){ ll @h,@w,@c; fe[h][w]=c; } DijkstraHeap<ll> h; ll hs=1<<19; h.walloc(hs); h.init(hs); h.change(1<<10|1<<1|0,0); while(h.size){ ll a=h.pop(); ll v=h.val[a]; ll y=a>>10; ll x=a>>1&(511); if(a&1){ if(y>1){ h.change(a-(1<<10),v+fe[y-1][x]+1); } if(y<n){ h.change(a+(1<<10),v+fe[y+1][x]+1); } if(x>1){ h.change(a-(1<<1),v+fe[y][x-1]+1); } if(x<n){ h.change(a+(1<<1),v+fe[y][x+1]+1); } }else{ if(y>1){ h.change(a-(1<<10),v+fe[y-1][x]+1); h.change(a-(1<<10)+1,v+1); } if(y<n){ h.change(a+(1<<10),v+fe[y+1][x]+1); h.change(a+(1<<10)+1,v+1); } if(x>1){ h.change(a-(1<<1),v+fe[y][x-1]+1); h.change(a-(1<<1)+1,v+1); } if(x<n){ h.change(a+(1<<1),v+fe[y][x+1]+1); h.change(a+(1<<1)+1,v+1); } } } wt(h.val[n<<10|n<<1|1]); }