Proszę o pomoc. W pliku data.txt mam zapisane poprawne rozwiązanie sudoku:

123459678
678123459
459678123
214365897
365897214
897214365
531742986
742986531
986531742

Chcę, aby w pliku results.txt wyświetlała się informacja czy rozwiązanie jest poprawne czy też nie. Jednak zawsze wyświetla się, że jest niepoprawne. Chciałabym dowiedzieć się jak poprawić ten kod:

#include <fstream>

using namespace std;

ifstream inFile("data.txt");

ofstream outFile("results.txt");

int n, sudoku[10][10], sumH[20], sumV[20];

bool bSum=false, bSkirt=false;

void input(){

inFile >> n;



for(int i=0;i<n;i++){

    for(int m=0;m<n;m++){

        inFile >> sudoku[i][m];

    }

}

inFile.close();

}

void sum(){

for(int i=0;i<n;i++){

    sumH[i]=0;

    sumV[i]=0;

    for(int m=0;m<n;m++){

        sumH[i]+=sudoku[i][m];

        sumV[i]+=sudoku[m][i];

    }

}



for(int i=0;i<n;i++){

    for(int m=0;m<n;m++){

        if(sumH[i]==sumH[m] && sumV[i]==sumH[m]){

            bSum = true;

        }else{

            bSum = false;

            break;



        }

    }

}

}

void difference(){

for(int i=0;i<n;i++){

    for(int m=1;m<n;m++){

        if(sudoku[0][i]!=sudoku[m][i] && sudoku[i][0]!=sudoku[i][m]){

            bSkirt = true;

        }else{

            bSkirt = false;

            break;

        }

    }

}

}

int main(){

input();

sum();

difference();



if(bSum==true&&bSkirt==true){

    outFile << "Poprawne";

}else{

    outFile << "Niepoprawne";

}



outFile.close();

return 0;

}

Proszę o pomoc i dziękuję z góry :)