Advertisement
RnD

Sudoku check

RnD
Dec 8th, 2012
311
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <fstream>
  2. using namespace std;
  3.  
  4.     ifstream inFile("data.txt");
  5.     ofstream outFile("results.txt");
  6.     int n, sudoku[10][10], sumH[20], sumV[20];
  7.     bool bSum=false, bSkirt=false;
  8.  
  9. void input(){
  10.     inFile >> n;
  11.  
  12.     for(int i=0;i<n;i++){
  13.         for(int m=0;m<n;m++){
  14.             inFile >> sudoku[i][m];
  15.         }
  16.     }
  17.     inFile.close();
  18. }
  19. void sum(){
  20.     for(int i=0;i<n;i++){
  21.         sumH[i]=0;
  22.         sumV[i]=0;
  23.         for(int m=0;m<n;m++){
  24.             sumH[i]+=sudoku[i][m];
  25.             sumV[i]+=sudoku[m][i];
  26.         }
  27.     }
  28.  
  29.     for(int i=0;i<n;i++){
  30.         for(int m=0;m<n;m++){
  31.             if(sumH[i]==sumH[m] && sumV[i]==sumH[m]){
  32.                 bSum = true;
  33.             }else{
  34.                 bSum = false;
  35.                 break;
  36.  
  37.             }
  38.         }
  39.     }
  40. }
  41. void difference(){
  42.     for(int i=0;i<n;i++){
  43.         for(int m=1;m<n;m++){
  44.             if(sudoku[0][i]!=sudoku[m][i] && sudoku[i][0]!=sudoku[i][m]){
  45.                 bSkirt = true;
  46.             }else{
  47.                 bSkirt = false;
  48.                 break;
  49.             }
  50.         }
  51.     }
  52. }
  53.  
  54. int main(){
  55.  
  56.     input();
  57.     sum();
  58.     difference();
  59.  
  60.     if(bSum&&bSkirt){
  61.         outFile << "It is valid!";
  62.     }else{
  63.         outFile << "It is not!";
  64.     }
  65.  
  66.     outFile.close();
  67.     return 0;
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement