fork download
  1. #include <iostream>
  2. using namespace std;
  3. int puzzle[16][17],press[16][17];
  4. void set(){
  5. for(int i=0;i<16;i++){
  6. for(int j=0;j<17;j++){
  7. puzzle[i][j]=0;
  8. press[i][j]=0;
  9. }
  10. }
  11. return;
  12. }
  13. void get(int n){
  14. string c;
  15. cin>>c;
  16. for(int i=1;i<=n;i++){
  17. for(int j=1;j<=n;j++){
  18. switch(c[i-1]){
  19. case 'y':
  20. puzzle[i][j]=1;
  21. break;
  22. case 'w':
  23. puzzle[i][j]=0;
  24. break;
  25. }
  26. }
  27. }
  28. return;
  29. }
  30. bool paint_ok(int n){
  31. int i,j;
  32. for(i=1;i<n;i++)
  33. for(j=1;j<=n;j++)
  34. press[i+1][j]=(puzzle[i][j]+press[i][j]+press[i][j+1]+press[i][j-1]+press[i-1][j])%2;
  35. for(j=1;j<=n;j++)
  36. if((press[n][j]+press[n][j+1]+press[n][j-1]+press[n-1][j])%2 != puzzle[n][j])
  37. return false;
  38. return true;
  39. }
  40. bool paint(int n){
  41. while(paint_ok(n)==false){
  42. int j=1;
  43. press[1][1]++;
  44. while(press[1][j]>1){
  45. press[1][j]=0;
  46. j++;
  47. press[1][j]++;
  48. }
  49. }
  50. if(paint_ok(n))
  51. return true;
  52. return false;
  53. }
  54. void print_n(int n){
  55. int c=0;
  56. if(paint(n)){
  57. for(int i=1;i<=n;i++){
  58. for(int j=1;j<=n;j++){
  59. if(press[i][j]==1)
  60. c++;
  61. }
  62. }
  63. cout<<c<<endl;
  64. }else
  65. cout<<"inf"<<endl;
  66. return;
  67. }
  68. int main(){
  69. int t;
  70. cin>>t;
  71. while(t--){
  72. int n;
  73. cin>>n;
  74. set();
  75. get(n);
  76. print_n(n);
  77. }
  78. return 0;
  79. }
Success #stdin #stdout 0s 5280KB
stdin
17
4
yyyy
yyyy
yyyy
yyyy
6
wwwwww
wwwwww
wwwwww
wwwwww
wwwwww
wwwwww
1
w
2
wy
yw
3
yyy
yyw
www
4
wwwy
wywy
ywyy
wyyw
5
wywyw
ywwwy
wwyww
ywwwy
wyyww
6
wwwwyy
wyyyyy
yyyywy
wyyyww
ywwyyy
yyywyy
7
wywwyyy
wwwwwyy
ywywyww
yyywwww
yyywyww
wywyyyw
yyywwww
8
wwwwwwwy
wyyyyywy
ywywywyw
ywwwyywy
yyywywyy
wywwyyyy
wwywywww
ywwywyww
9
ywwyywyyy
wwywwwwww
ywyyyyyyy
wwywwyyyy
ywywywwyy
wyyywyyyy
wwwyyywyy
wwwwyywwy
yywwwywww
10
wywywyywwy
ywywwywyyw
wywwywyyww
wwywwwwyww
wwyywyywyy
wywywwwwwy
yywwywyyyw
yyywwwywyy
wywwyyywwy
wyyyywwywy
11
wwyyyyyywwy
wwywwywyywy
ywwywwwwywy
wwwywwwwyyy
yyywywyyyww
wyywwyyywyw
wyyyywyywwy
yywyywyyywy
wywwyywyyww
wywwwywyyyw
ywwwwyyyyyy
12
wwwwwyyyywyw
ywywyywwwyyw
wywywywwwyyy
wywywywyyyww
yyywywwwwwyy
wywywwwwwwwy
ywwyyyyywwyw
wwwwwywywyyw
wwwwwyyywwyy
wwwywyywywyy
wywwwwyywwyy
ywywywwyyywy
13
ywwwyywywwyww
ywyyywwywywww
wyywwywwwwwyw
ywwwwwyywywyy
wywyyywwywwwy
wywwyyywwwyyy
ywwwwyywyywyw
wwyyywywwwywy
wyyywwyyywyww
wwwywwwywwyww
wwwwyyyywyyyy
ywwyyywywwywy
wwyywwwyywyyw
14
wwwwyywyywwyyy
yyywwywyywwwyy
wyyyyyyywwwyww
wwyyyyywwyyyyw
ywywyyywwwyyyy
yywwywywwywwyy
wyyywwwywywwww
wyywwywyywywyy
wwwwwwwyywywww
wywyyyywyyyyww
wwwyywywyywwyw
ywwyyyywwywwww
wywywyywwyyyww
ywywwyyyyywwyy
15
ywywywwywywwyww
yyyywwwyyyywyyy
wyyywyywywywyyy
wywwywyywyyyywy
yyywwwyywyyyyyw
yyyywwywywywywy
ywwywyyywywwywy
yyyyywywwwwwwyy
ywywywywwywywwy
wywywyyywwwwwyw
wyyyywwywyyyyyy
wyywwwwwwwwwyyw
wyywywywwwwyyyw
yyyyywyyywwyyyy
wyyywywwwwwyywy
stdout
10
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0