#include<cstdio> using namespace std; int n,k; long long x,i2; char tab[3020][3020]; int main () { scanf("%d %d",&n,&k); for(int i=10; i<n+10; i++) for(int j=10; j<n+10; j++) scanf(" %c",&tab[j][i]); if(k==1) { for(int i=10; i<n+10; i++) for(int j=10; j<n+10; j++) if(tab[j][i] == '.' && (tab[j-1][i]=='#' || tab[j+1][i] == '#' || tab[j][i-1] =='#' || tab[j][i+1]=='#')) x++; } if(k==2) { for(int i=10; i<n+10 ;i++) for(int j=10; j<n+10; j++) if(tab[j][i] == '.' && (tab[j-1][i]=='#' || tab[j+1][i] == '#' || tab[j][i-1] =='#' || tab[j][i+1]=='#')) { x++; if(tab[j-1][i] == '.' && tab[j-2][i]!= '#' && tab[j-1][i-1]!='#' && tab[j-1][i+1] != '#') i2++; if(tab[j+1][i] == '.' && tab[j+2][i]!= '#' && tab[j+1][i-1]!='#' && tab[j+1][i+1] != '#') i2++; if(tab[j][i+1] == '.' && tab[j][i+2]!= '#' && tab[j-1][i+1]!='#' && tab[j+1][i+1] != '#') i2++; if(tab[j][i-1] == '.' && tab[j][i-2]!= '#' && tab[j-1][i-1]!='#' && tab[j+1][i-1] != '#') i2++; } x=(x*(x-1))/2; x%=1000000007; x+=i2; } printf("%d",x); return 0; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | #include<cstdio> using namespace std; int n,k; long long x,i2; char tab[3020][3020]; int main () { scanf("%d %d",&n,&k); for(int i=10; i<n+10; i++) for(int j=10; j<n+10; j++) scanf(" %c",&tab[j][i]); if(k==1) { for(int i=10; i<n+10; i++) for(int j=10; j<n+10; j++) if(tab[j][i] == '.' && (tab[j-1][i]=='#' || tab[j+1][i] == '#' || tab[j][i-1] =='#' || tab[j][i+1]=='#')) x++; } if(k==2) { for(int i=10; i<n+10 ;i++) for(int j=10; j<n+10; j++) if(tab[j][i] == '.' && (tab[j-1][i]=='#' || tab[j+1][i] == '#' || tab[j][i-1] =='#' || tab[j][i+1]=='#')) { x++; if(tab[j-1][i] == '.' && tab[j-2][i]!= '#' && tab[j-1][i-1]!='#' && tab[j-1][i+1] != '#') i2++; if(tab[j+1][i] == '.' && tab[j+2][i]!= '#' && tab[j+1][i-1]!='#' && tab[j+1][i+1] != '#') i2++; if(tab[j][i+1] == '.' && tab[j][i+2]!= '#' && tab[j-1][i+1]!='#' && tab[j+1][i+1] != '#') i2++; if(tab[j][i-1] == '.' && tab[j][i-2]!= '#' && tab[j-1][i-1]!='#' && tab[j+1][i-1] != '#') i2++; } x=(x*(x-1))/2; x%=1000000007; x+=i2; } printf("%d",x); return 0; } |