fork download
  1. #include<stdio.h>
  2. #include<stdbool.h>
  3.  
  4. bool valid(int n){
  5. if(n >= 0 && n < 2)return true;
  6. return false;
  7. }
  8.  
  9. void print(int b[2][2]){
  10. for(int i = 0; i < 2; i++){
  11. for(int j = 0; j < 2; j++){
  12. printf("%d ", b[i][j]);
  13. }
  14. printf("\n");
  15. }
  16. }
  17.  
  18. void mine(int a[2][2], int b[2][2], int x, int y, int sum){
  19. b[x][y] = 0;
  20. if(valid(x + 1))mine(a, b, x + 1, y, sum);
  21. else if(valid(y + 1))mine(a, b, 0, y + 1, sum);
  22. else print(b);print(a);printf("\n");
  23.  
  24. b[x][y] = 1;
  25. int temp[2][2], sum2 = sum;
  26. for(int i = 0; i < 2; i++){
  27. for(int j = 0; j < 2; j++){
  28. temp[i][j] = a[i][j];
  29. }
  30. }
  31.  
  32. for(int i = -1; i < 2; i++){
  33. for(int j = -1; j < 2; j++){
  34. if(valid(x + i) && valid(y + j))temp[(x + i)][(y + j)]--;
  35. sum2 --;
  36. }
  37. }
  38. if(valid(x + 1))mine(temp, b, x + 1, y, sum2);
  39. else if(valid(y + 1))mine(temp, b, 0, y + 1, sum2);
  40. else print(b);print(temp);printf("\n");
  41. }
  42.  
  43. int main(){
  44. int a[2][2], b[2][2], sum = 0;
  45. for(int i = 0; i < 2; i++){
  46. for(int j = 0; j < 2; j++){
  47. scanf("%d", &a[i][j]);
  48. sum += a[i][j];
  49. }
  50. }
  51. mine(a, b, 0, 0, sum);
  52. }
Success #stdin #stdout 0s 5284KB
stdin
2 1 
1 2
stdout
Standard output is empty