fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int main()
  4. {
  5. int n,a[110][110];
  6. while(scanf("%d",&n) && n)
  7. {
  8. int b=0,t=0;
  9. for(int i=0; i<n; i++)
  10. {
  11. for(int j=0; j<n; j++)scanf("%d",&a[i][j]);
  12. }
  13. int i,I=0,J=0;
  14. for(i=0; i<n; i++)
  15. {
  16. int r=0,c=0;
  17. for(int l=0; l<n; l++)r+=a[i][l];
  18. if(r&1 && !b)
  19. {
  20. bool balance=false;
  21. for(int j=0; j<n; j++)
  22. {
  23. if(a[i][j] || !a[i][j])
  24. {
  25. c=0;
  26. for(int k=0; k<n; k++)c+=a[k][j];
  27. if(c&1 && !b)
  28. {
  29. balance=true;
  30. a[i][j]=0;
  31. I=i+1;
  32. J=j+1;
  33. b=1;
  34. break;
  35. }
  36. }
  37. }
  38. if(!balance)
  39. {
  40. t=1;
  41. break;
  42. }
  43. }
  44. else if(r&1 && b)
  45. {
  46. t=1;
  47. break;
  48. }
  49. c=0;
  50. for(int k=0; k<n; k++)c+=a[k][i];
  51. if(c&1 && !b)
  52. {
  53. bool balance=false;
  54. for(int k=0; k<n; k++)
  55. {
  56. if(a[k][i]==1 || a[k][i]==0)
  57. {
  58. r=0;
  59. for(int j=0; j<n; j++)r+=a[k][j];
  60. if(r&1 && !b)
  61. {
  62. a[k][i]=0;
  63. balance=true;
  64. I=k+1;
  65. J=i+1;
  66. b=1;
  67. break;
  68. }
  69. }
  70. }
  71. if(!balance)
  72. {
  73. t=1;
  74. break;
  75. }
  76. }
  77. }
  78. if(t)printf("Corrupt\n");
  79. if(!t)
  80. {
  81. if(!I && !J)printf("OK\n");
  82. else printf("Change bit (%d,%d)\n",I,J);
  83. }
  84. }
  85. return 0;
  86. }
  87.  
Success #stdin #stdout 0s 3416KB
stdin
4
1 0 1 0
0 0 1 0
1 0 0 1
0 1 0 1
0
stdout
Change bit (2,2)