Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<cmath>
- #include<string>
- #include<algorithm>
- #include<cstdio>
- #include<cstring>
- #include<vector>
- #include<stack>
- #include<queue>
- #include<map>
- #define FRU freopen("out.txt","w",stdout)
- #define FRO freopen("in.txt","r",stdin)
- #define pb push_back
- using namespace std;
- char grid[1001][101],in[101][101];
- bool vis[1001][101];
- int row[]={-1,-1,-1,0,0,1,1,1};
- int col[]={-1,0,1,-1,1,-1,0,1};
- int m,n,total,g[105][105];
- void dfs(int r,int c)
- {
- total++;
- vis[r][c]=1;
- for(int i=0;i<8;i++)
- {
- int rr=r+row[i];
- int cc=c+col[i];
- if(rr>=0&& cc>=0&& rr<n&& cc<m&& !vis[rr][cc]&& grid[rr][cc]=='W')dfs(rr,cc);
- }
- }
- int main()
- {
- FRO;
- //FRU;
- int a,b,i,j,k,tc,t,ii=0;
- int cnt=0,r,c;
- scanf("%d",&tc);
- getchar();
- for(t=1;t<=tc;t++)
- {
- scanf("%s",grid[0]);
- getchar();
- m=strlen(grid[0]);
- n=1;
- while(gets(grid[n++]))
- {
- if(grid[n-1][0]!='L'&& grid[n-1][0]!='W')
- {
- n--;
- r=c=0;
- for(i=0;grid[n][i]!=' ';i++)r=r*10+(grid[n][i]-'0');
- for(i++;grid[n][i]!='\0';i++)c=c*10+(grid[n][i]-'0');
- printf("%d %d\n",n,m);
- goto next;
- }
- }
- while(gets(in[ii++]))
- {
- r=c=0;
- if(in[ii-1][0]=='\0')break;
- for(i=0;in[ii-1][i]!=' ';i++)r=r*10+(in[ii-1][i]-'0');
- for(i++;in[ii-1][i]!='\0';i++)c=c*10+(in[ii-1][i]-'0');
- next: ;
- total=0;
- for(i=0;i<100;i++)memset(vis,0,sizeof(vis));
- if(grid[r-1][c-1]=='L')total=0;
- else dfs(r-1,c-1);
- printf("%d\n",total);
- }
- if(t!=tc)printf("\n");
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement