結果
問題 | No.323 yuki国 |
ユーザー |
![]() |
提出日時 | 2015-12-16 01:21:45 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 187 ms / 5,000 ms |
コード長 | 2,186 bytes |
コンパイル時間 | 681 ms |
コンパイル使用メモリ | 80,556 KB |
実行使用メモリ | 25,168 KB |
最終ジャッジ日時 | 2024-06-28 12:20:41 |
合計ジャッジ時間 | 3,530 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 6 |
other | AC * 32 |
ソースコード
#include<iostream>#include<string>#include<vector>#include<queue>#include<stack>#include<map>#include<set>#include<algorithm>#include<functional>#include<cstdio>#include<cstdlib>#include<cmath>using namespace std;#define mind(a,b) (a>b?b:a)#define maxd(a,b) (a>b?a:b)#define absd(x) (x<0?-(x):x)#define pow2(x) ((x)*(x))#define rep(i,n) for(int i=0; i<n; ++i)#define repr(i,n) for(int i=n-1; i>=0; --i)#define repl(i,s,n) for(int i=s; i<=n; ++i)#define replr(i,s,n) for(int i=n; i>=s; --i)#define repf(i,s,n,j) for(int i=s; i<=n; i+=j)#define repe(e,obj) for(auto e : obj)#define SP << " " <<#define COL << " : " <<#define COM << ", " <<#define ARR << " -> " <<#define PNT(STR) cout << STR << endl#define POS(X,Y) "(" << X << ", " << Y << ")"#define DEB(A) " (" << #A << ") " << A#define DEBREP(i,n,val) for(int i=0; i<n; ++i) cout << val << " "; cout << endl#define ALL(V) (V).begin(), (V).end()#define INF 1000000007#define INFLL 10000000000000000007LL#define EPS 1e-9typedef unsigned int uint;typedef unsigned long ulong;typedef unsigned long long ull;typedef long long ll;typedef long double ld;typedef pair<int, int> P;//typedef pair<ll, ll> P;typedef pair<P, int> PI;typedef pair<int, P> IP;typedef pair<P, P> PP;typedef priority_queue<P, vector<P>, greater<P> > pvqueue;#define W 53#define N 2203int h, w;int a, si, sj, b, gi, gj;int used[W][W][N];char m[W][W];int dx[] = {-1,0,1,0};int dy[] = {0,-1,0,1};int main() {cin >> h >> w;cin >> a >> si >> sj >> b >> gi >> gj;rep(i, h) cin >> m[i];queue<PI> que;que.push(PI(P(sj, si), a));used[si][sj][a] = true;while(!que.empty()) {PI p = que.front(); que.pop();int x = p.first.first, y = p.first.second, sz = p.second;rep(k, 4) {int nx = x + dx[k], ny = y + dy[k];if(nx < 0 || nx >= w || ny < 0 || ny >= h) continue;int n_sz = (m[ny][nx]=='*' ? sz+1 : sz-1);if(n_sz > (2*(h+w)+a+b+1)) n_sz = (2*(h+w)+a+b);if(n_sz>0 && !used[ny][nx][n_sz]) {que.push(PI(P(nx, ny), n_sz));used[ny][nx][n_sz] = true;}}}cout << (used[gi][gj][b] ? "Yes" : "No") << endl;return 0;}