//#include "ada.hh" #include #include using namespace std; typedef int boolean; template class matrix { int r,c; vector > t; public: matrix () : r(0), c(0) { } matrix (int files, int columnes, T init=T()) : r(files), c(columnes), t(vector >(r, vector(c,init))) { } int rows () const { return r; } int cols () const { return c; } vector& operator[] (int i) { return t[i]; } const vector& operator[] (int i) const { return t[i]; } friend ostream& operator<< (ostream& s, matrix m) { for (int j=0; j Q; // el sudoku matrix F; // F[i][c] = c Es lliure per fila i matrix C; // C[j][c] = c Es lliure per columna j matrix S; // S[k][c] = c Es lliure per al k-essim subquadrat bool omplir() { /*Recorrem la matriu d'entrada per actualitzar els controladors de factibilitat*/ for (int i=0; in = nombre; Q = matrix(n,n); int i, j; i = j = 0; char c; while (j < 9) { cin >> c; if (c <= '9' and c >= '0') { Q[j][i] = c-'0'; ++i; if (i == 9) { i = 0; ++j; } } } //cout << Q; F = matrix(n,n,true); C = matrix(n,n,true); S = matrix(n,n,true); /*if(omplir()) { if (!recursiu(0)) cout << "sense solucio" << endl; } else cout << "sense solucio" << endl;*/ //if (omplir()) //{ // cout << "entro aqui"; if ((!omplir())) cout << "sense solucio"; else { if (!recursiu(0)) cout << "sense solucio" << endl; } //else cout << "sense solucio"; } }; /** Programa principal **/ int main () { Sudoku sk(9); }