Advertisement
Infernale

Sudoku [Brute force]

Nov 4th, 2019
476
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.11 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. int main(){
  4.     int n, corr = 0;
  5.     scanf("%d", &n);
  6.     for(int tc=1; tc<=n; tc++){
  7.         int board[9][9];
  8.         bool correct = true;
  9.         for(int i=0; i<9 ;i++)
  10.             for(int j=0; j<9; j++)
  11.                 scanf("%d", &board[i][j]);
  12.         for(int i=0; i<9 && correct;i++){
  13.             bool flag[10] = {0};
  14.             for(int j=0; j<9; j++){
  15.                 if(flag[board[i][j]]){
  16.                     correct = false;
  17.                     break;
  18.                 }else{
  19.                     flag[board[i][j]] = true;
  20.                 }
  21.             }
  22.         }
  23.         for(int i=0; i<9 && correct;i++){
  24.             bool flag[10] = {0};
  25.             for(int j=0; j<9; j++){
  26.                 if(flag[board[j][i]]){
  27.                     correct = false;
  28.                     break;
  29.                 }else{
  30.                     flag[board[j][i]] = true;
  31.                 }
  32.             }
  33.         }      
  34.         for(int i=0; i<9; i+=3){
  35.             for(int j=0; j<9; j+=3){
  36.                 bool flag[10] = {0};
  37.                 for(int k=i; k<i+3; k++){
  38.                     for(int l=j; l<j+3; l++){
  39.                         if(flag[board[k][l]]){
  40.                             correct = false;
  41.                             break;
  42.                         }else{
  43.                             flag[board[k][l]] = true;
  44.                         }
  45.                     }
  46.                 }
  47.             }
  48.         }
  49.         if(correct){
  50.             corr++;
  51.             printf("Case #%d: TRUE\n", tc);
  52.         }else{
  53.             printf("Case #%d: FALSE\n", tc);
  54.         }
  55.     }
  56.     printf("%.2f%%\n", (double)corr*100/n);
  57.     return 0;
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement