結果
問題 | No.1588 Connection |
ユーザー |
![]() |
提出日時 | 2021-07-08 23:42:49 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
(最新)
QLE
(最初)
|
実行時間 | - |
コード長 | 1,384 bytes |
コンパイル時間 | 3,979 ms |
コンパイル使用メモリ | 237,076 KB |
実行使用メモリ | 25,220 KB |
平均クエリ数 | 297.78 |
最終ジャッジ日時 | 2024-07-17 12:39:26 |
合計ジャッジ時間 | 6,920 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | WA * 1 |
other | AC * 22 WA * 9 |
ソースコード
#include <bits/stdc++.h> #include <atcoder/all> using namespace atcoder; using mint = modint1000000007; using namespace std; #define rep(i,n) for(int i=0;i<n;i++) const int MOD=1e9+7; const long long INF = 1LL<<60; void YN(bool x){ if(x) cout<<"Yes"; else cout<<"No"; } int dx[]={1,0,0,-1},dy[]={0,1,-1,0}; int main(){ int N,M,C=0;cin>>N>>M; M-=2; vector<vector<int>> D(N,vector<int>(N,-1)); D[0][0]=0; vector<vector<char>> S(N,vector<char>(N,'G')); S[0][0]='B'; queue<pair<int,int>>q; q.push({0,0}); while(q.size()){ auto x=q.front().first,y=q.front().second; q.pop(); if(N-1-x+N-1+y-1>M)continue; rep(i,4){ auto nx=x+dx[i],ny=y+dy[i]; if(nx<0||ny<0||nx>=N||ny>=N)continue; if(nx==N-1&&ny==N-1){ cout<<"Yes"; return 0; } if(S[nx][ny]!='G')continue; if(C==3000){ cout<<"No"; return 0; } cout<<nx+1<<' '<<ny+1<<endl; string s;cin>>s; C++; if(s=="-1"){ cout<<"No"; return 0; } if(s=="Black"){ S[nx][ny]='B'; q.push({nx,ny}); M--; } else S[nx][ny]='W'; } } cout<<"No"; }