結果
| 問題 | No.1283 Extra Fee | 
| コンテスト | |
| ユーザー |  tails | 
| 提出日時 | 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]);
}
            
            
            
        