fork download
  1. #include <iostream>
  2. #include <cstring>
  3. using namespace std;
  4.  
  5. int D,W,K;
  6. int map[14][21];
  7.  
  8. int proc[14];
  9. bool r,r2;
  10.  
  11. bool check(){
  12. int t_map[14][21];
  13. for(int i=0;i<D;i++){
  14. if(proc[i])
  15. for(int j=0;j<W;j++) t_map[i][j] = proc[i]-1;
  16. else{
  17. for(int j=0;j<W;j++) t_map[i][j] = map[i][j];
  18. }
  19. }
  20.  
  21. for(int j=0;j<W;j++){
  22. int m = 1;
  23. int cnt = 1;
  24. int cur = t_map[0][j];
  25. for(int i=1;i<D;i++){
  26. if(cur != t_map[i][j]){
  27. m = max(cnt,m);
  28. cur = t_map[i][j];
  29. cnt = 1;
  30. }
  31. else cnt++;
  32. m = max(cnt,m);
  33. }
  34. if(m<K) return false;
  35. }
  36.  
  37. return true;
  38. }
  39.  
  40. int dfs(int a,int c,int index){
  41. if(index==D){
  42. if(c != a) return 0;
  43. r = check();
  44. if(r) r2 = true;
  45. return 0;
  46. }
  47.  
  48. proc[index] = 0;
  49. dfs(a,c,index+1);
  50. proc[index] = 1;
  51. dfs(a,c+1,index+1);
  52. proc[index] = 2;
  53. dfs(a,c+1,index+1);
  54.  
  55. return 0;
  56. }
  57.  
  58. int main() {
  59. int T;
  60. cin >> T;
  61. int result;
  62.  
  63. for(int test_case=1;test_case<=T;test_case++){
  64. result = -1;
  65. r = false;
  66. r2 = false;
  67. memset(map,0,sizeof(map));
  68. memset(proc,0,sizeof(proc));
  69.  
  70. cin >> D >> W >> K;
  71. for(int i=0;i<D;i++)
  72. for(int j=0;j<W;j++)
  73. cin >> map[i][j];
  74.  
  75. r = check();
  76. if(r) result = 0;
  77. else{
  78. for(int i=1;i<=D;i++){
  79. dfs(i,0,0);
  80. if(r2){
  81. result = i;
  82. break;
  83. }
  84. }
  85. }
  86.  
  87. cout << "#" << test_case << " " << result << endl;
  88. }
  89. return 0;
  90. }
Success #stdin #stdout 0.02s 4396KB
stdin
10
6 8 3
0 0 1 0 1 0 0 1
0 1 0 0 0 1 1 1
0 1 1 1 0 0 0 0
1 1 1 1 0 0 0 1
0 1 1 0 1 0 0 1
1 0 1 0 1 1 0 1
6 8 3
1 1 1 1 0 0 1 0
0 0 1 1 0 1 0 1
1 1 1 1 0 0 1 0
1 1 1 0 0 1 1 0
1 1 0 1 1 1 1 0
1 1 1 0 0 1 1 0
6 8 4
1 1 0 0 0 1 1 0
1 0 1 0 0 1 1 1
0 1 0 0 1 1 0 0
1 0 1 0 0 0 0 0
1 1 0 0 0 0 0 0
1 0 0 0 1 1 1 1
6 4 4
1 1 0 0
0 1 0 1
0 0 0 1
1 1 1 1
1 1 0 1
1 0 1 0
6 10 3
0 1 0 0 0 1 0 0 1 1
0 1 1 0 0 1 0 0 1 0
0 1 0 0 1 0 1 1 1 1
0 0 0 0 0 1 1 1 1 0
0 1 0 0 1 1 1 1 1 1
1 0 0 0 1 1 0 0 1 1
6 6 5
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
6 6 4
1 1 1 1 1 1
0 0 0 0 0 1
0 1 1 1 0 1
0 1 0 1 0 1
0 1 0 0 0 1
0 1 1 1 1 1
8 15 3
0 1 1 0 0 1 1 0 1 1 0 0 0 0 0
1 0 0 0 1 1 0 0 0 0 0 1 0 1 1
1 1 0 1 0 1 0 1 0 1 0 1 0 0 0
0 1 1 1 0 0 1 0 0 0 0 1 0 0 0
0 0 0 0 0 0 1 0 0 0 1 1 0 0 1
1 0 1 0 0 1 0 1 1 1 1 0 1 1 1
0 0 0 0 0 1 1 1 0 0 0 0 0 1 0
0 0 1 0 1 1 0 1 1 0 0 0 1 0 0
10 20 4
1 0 1 1 1 1 1 1 1 1 0 0 1 1 1 0 1 1 0 1
1 1 0 1 1 1 0 0 1 0 0 0 1 1 1 1 0 0 1 0
1 1 0 1 1 0 0 0 1 1 1 1 1 0 0 1 1 0 1 0
0 0 0 1 1 0 0 0 0 1 0 0 1 0 1 1 1 0 1 0
0 1 1 0 1 0 1 0 1 0 0 1 0 0 0 0 1 1 1 1
1 0 1 0 1 0 1 1 0 0 0 0 1 1 1 0 0 0 0 0
0 1 0 0 1 1 0 0 0 0 0 1 1 0 0 1 1 0 1 1
1 0 0 0 0 1 0 1 1 0 1 1 0 1 0 0 1 1 1 0
0 1 1 0 0 1 0 1 0 0 0 0 0 0 0 1 1 1 0 1
0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 1 0
13 20 5
1 1 0 1 0 0 0 1 1 1 1 0 0 0 1 1 1 0 0 0
1 1 1 1 0 1 0 1 0 0 0 0 1 0 0 0 0 1 0 0
1 0 1 0 1 1 0 1 0 1 1 0 0 0 0 1 1 0 1 0
0 0 1 1 0 1 1 0 1 0 0 1 1 0 0 0 1 1 1 1
0 0 1 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 1 1
0 0 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 1 0 1
0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 1 0 0 1 0
1 1 1 0 0 0 1 0 0 1 1 1 0 1 0 1 0 0 1 1
0 1 1 1 1 0 0 0 1 1 0 1 0 0 0 0 1 0 0 1
0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 1 1 1 1 1
0 1 0 0 1 1 0 0 1 0 0 0 0 1 0 1 0 0 1 0
0 0 1 1 0 0 1 0 0 0 1 0 1 1 0 1 1 1 0 0
0 0 0 1 0 0 1 0 0 0 1 0 1 1 0 0 1 0 1 0
stdout
#1 2
#2 0
#3 4
#4 2
#5 2
#6 0
#7 3
#8 2
#9 3
#10 4