Advertisement
Guest User

Untitled

a guest
Aug 9th, 2017
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
DOT 0.83 KB | None | 0 0
  1. #include <stdio.h>
  2. int i,j,t,tt,n,f[111][111],md=1000007;
  3. char s[111][111];
  4. bool q;
  5. int main() {
  6.   scanf("%d",&tt);
  7.   for (t=1; t<=tt; t++) {
  8.     scanf("%d",&n); q=true;
  9.     for (i=0; i<n; i++) scanf("%s",s[i]);
  10.     for (i=0; i<n && q; i++) for (j=0; j<n && q; j++) {
  11.       f[i][j]=0;
  12.       if (s[i][j]=='B') continue;
  13.       if (i>0) {
  14.         if (j>0)   { f[i][j]+=f[i-1][j-1]; if (f[i][j]>=md) f[i][j]-=md; }
  15.         if (j<n-1) { f[i][j]+=f[i-1][j+1]; if (f[i][j]>=md) f[i][j]-=md; }
  16.       } else f[i][j]=int(s[i][j]!='B');
  17.       if (i>1 && j>1   && s[i-1][j-1]=='B') { f[i][j]+=f[i-2][j-2]; if (f[i][j]>=md) f[i][j]-=md; }
  18.       if (i>1 && j<n-2 && s[i-1][j+1]=='B') { f[i][j]+=f[i-2][j+2]; if (f[i][j]>=md) f[i][j]-=md; }
  19.       if (s[i][j]=='W') { printf("Case %d: %d\n",t,f[i][j]); q=false; break; }
  20.     }
  21.   }
  22.   return 0;
  23. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement