結果
問題 | No.323 yuki国 |
ユーザー |
![]() |
提出日時 | 2016-09-19 13:24:07 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 235 ms / 5,000 ms |
コード長 | 851 bytes |
コンパイル時間 | 1,419 ms |
コンパイル使用メモリ | 163,804 KB |
実行使用メモリ | 23,296 KB |
最終ジャッジ日時 | 2024-06-28 12:39:02 |
合計ジャッジ時間 | 5,460 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 6 |
other | AC * 32 |
ソースコード
#include<bits/stdc++.h>using namespace std;// not...const int MX = 55;const int di[]={-1,0,1,0}, dj[]={0,-1,0,1};int h,w;int a,si,sj;int b,ti,tj;string t[MX];int d[MX][MX][2005];struct dat { int i, j, s;};int main(){cin >> h >> w;cin >> a >> si >> sj;cin >> b >> ti >> tj;for(int i=0;i<h;i++) cin >> t[i];queue<dat> q;d[si][sj][a]=1;q.push({si,sj,a});while(q.size()){dat nd = q.front(); q.pop();int i=nd.i;int j=nd.j;int s=nd.s;for(int v=0;v<4;v++){int ni=i+di[v], nj=j+dj[v];if(ni<0 || nj<0 || ni>=h || nj>=w) continue;int ns=s;if(t[ni][nj]=='*') ns++;else ns--;if(ns>2000) continue;if(!ns) continue;if(d[ni][nj][ns]) continue;q.push({ni,nj,ns});d[ni][nj][ns]=1;}}if(d[ti][tj][b]) cout << "Yes" << endl;else cout << "No" << endl;return 0;}