結果

問題 No.3199 Key-Door Grid
ユーザー tails
提出日時 2025-07-11 22:56:51
言語 cLay
(20241019-1)
結果
AC  
実行時間 367 ms / 3,000 ms
コード長 479 bytes
コンパイル時間 2,950 ms
コンパイル使用メモリ 189,440 KB
実行使用メモリ 37,900 KB
最終ジャッジ日時 2025-07-11 22:56:59
合計ジャッジ時間 7,268 ms
ジャッジサーバーID
(参考情報)
judge1 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 37
権限があれば一括ダウンロードができます

ソースコード

diff #

ll@h,@w,@m++,z=-1;
string@s[h];
DijkstraHeap<ll>q;
q.malloc(h*w*m,1);
rep(y,h)rep(x,w)if(s[y][x]=='S')q.change((y*w+x)*m+(m-1),0);
while(q.size){
	ll a=q.pop();
	ll k=a%m;
	ll b=a/m;
	if(s[b/w][b%w]=='G'){
		if((ull)z>q.val[a])z=q.val[a];
	}
	rep(i,4){
		ll y=(i==0)-(i==2)+b/w;
		ll x=(i==1)-(i==3)+b%w;
		if(y>=0&&y<h&&x>=0&&x<w){
			ll c=s[y][x];
			if(c!='#'&&(c>='a'&&c<='i'?c-'a'==k:true)){
				q.change((y*w+x)*m+(c>='1'&&c<='9'?c-'1':k),q.val[a]+1);
			}
		}
	}
}
wt(z);
0