結果
問題 | No.1588 Connection |
ユーザー |
![]() |
提出日時 | 2021-07-08 22:34:29 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
TLE
|
実行時間 | - |
コード長 | 3,907 bytes |
コンパイル時間 | 2,162 ms |
コンパイル使用メモリ | 219,588 KB |
最終ジャッジ日時 | 2025-01-22 18:43:39 |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | TLE * 1 |
other | TLE * 31 |
ソースコード
#pragma GCC optimize("Ofast")#pragma GCC optimize("unroll-loops")#pragma GCC optimize("inline")#include<bits/stdc++.h>using namespace std;inline int my_getchar(){return getchar();}inline void rd(int &x){int k;int m=0;x=0;for(;;){k = my_getchar();if(k=='-'){m=1;break;}if('0'<=k&&k<='9'){x=k-'0';break;}}for(;;){k = my_getchar();if(k<'0'||k>'9'){break;}x=x*10+k-'0';}if(m){x=-x;}}inline void rd(char &c){int i;for(;;){i = my_getchar();if(i!=' '&&i!='\n'&&i!='\r'&&i!='\t'&&i!=EOF){break;}}c = i;}inline int rd(char c[]){int i;int sz = 0;for(;;){i = my_getchar();if(i!=' '&&i!='\n'&&i!='\r'&&i!='\t'&&i!=EOF){break;}}c[sz++] = i;for(;;){i = my_getchar();if(i==' '||i=='\n'||i=='\r'||i=='\t'||i==EOF){break;}c[sz++] = i;}c[sz]='\0';return sz;}inline void my_putchar(const int k){putchar(k);if(k=='\n'){fflush(stdout);}}inline void wt_L(char a){my_putchar(a);}inline void wt_L(int x){int s=0;int m=0;char f[10];if(x<0){m=1;x=-x;}while(x){f[s++]=x%10;x/=10;}if(!s){f[s++]=0;}if(m){my_putchar('-');}while(s--){my_putchar(f[s]+'0');}}inline void wt_L(const char c[]){int i=0;for(i=0;c[i]!='\0';i++){my_putchar(c[i]);}}struct dimcomp2{int B;dimcomp2(){}dimcomp2(int b){B = b;}dimcomp2(int a, int b){B = b;}inline void set(int b){B = b;}inline void set(int a, int b){B = b;}inline int mask(int a, int b){return a * B + b;}inline int operator()(int a, int b){return a * B + b;}inline void para(int mask, int &a, int &b){a = mask / B;b = mask % B;}inline void operator()(int mask, int &a, int &b){a = mask / B;b = mask % B;}};int N;int M;int A[500][500];int qs;int qe;int q[1000000];int vis[500][500];int ok(int x, int y){char buf[10];if(x < 0 || y < 0 || x >= N || y >= N){return 0;}if(A[x][y]==-1){wt_L(x-1);wt_L(' ');wt_L(y-1);wt_L('\n');rd(buf);if(buf[0]=='B'){A[x][y] =0;}else{A[x][y] =1;}}return 1 - A[x][y];}int main(){rd(N);rd(M);int i;int j;int ni;int nj;dimcomp2 dm(N,N);int dx[4] = {-1, 1, 0, 0};int dy[4] = {0, 0, -1, 1};for(i=(0);i<(N);i++){for(j=(0);j<(N);j++){A[i][j] = -1;}}A[0][0] = 0;q[qe++] = dm(0,0);while(qs < qe){int d;dm(q[qs++], i, j);for(d=(0);d<(4);d++){auto WYIGIcGE = ((i)+ (dx[d]));auto t_ynMSdg = (( j)+ ( dy[d]));ni=WYIGIcGE;nj=t_ynMSdg;if(ok(ni,nj) && vis[ni][nj]==0){vis[ni][nj] = 1;q[qe++] = dm(ni,nj);}}}if(vis[N-1][N-1]){wt_L("Yes");wt_L('\n');}else{wt_L("No");wt_L('\n');}return 0;}// cLay version 20210708-1// --- original code ---// //interactive// int N, M, A[500][500];// int qs, qe, q[1d6], vis[500][500];//// int ok(int x, int y){// char buf[10];// if(x < 0 || y < 0 || x >= N || y >= N) return 0;// if(A[x][y]==-1){// wt(x-1, y-1);// rd(buf);// A[x][y] = if[buf[0]=='B', 0, 1];// }// return 1 - A[x][y];// }//// {// rd(N,M);// int i, j, ni, nj;// dimcomp2 dm(N,N);// int dx[4] = {-1, 1, 0, 0};// int dy[4] = {0, 0, -1, 1};// rep(i,N) rep(j,N) A[i][j] = -1;// A[0][0] = 0;// q[qe++] = dm(0,0);// while(qs < qe){// dm(q[qs++], i, j);// rep(d,4){// (ni, nj) = (i, j) + (dx[d], dy[d]);// if(ok(ni,nj) && vis[ni][nj]==0){// vis[ni][nj] = 1;// q[qe++] = dm(ni,nj);// }// }// }// wt(if[vis[N-1][N-1], "Yes", "No"]);// }