#include
using namespace std;
bool is_safe(int table[][9],int i,int j,int p)
{
for(int k=0;k<9;k++)
{
if(table[k][j]==p)
{
return false;
}
}
for(int k=0;k<9;k++)
{
if(table[i][k]==p)
{
return false;
}
}
int sx=i-i%3;
int yx=j-j%3;
for(int w=sx;w<sx+3;w++)
{
for(int e=yx;e<yx+3;e++)
{
if(table[w][e]==p)
{
return false;
}
}
}
return true;
}
bool sudoku_solver(int table[][9],int i,int j,int n)
{
if(i==n)
{// cout<<“hello”;
for(int q=0;q<n;q++)
{
for(int w=0;w<n;w++)
{
cout<<table[q][w]<<",";
}
cout<<endl;
}
return true;
}
if(j==n)
{ // cout<<“helloi”<<endl;
return sudoku_solver(table,i+1,0,n);
}
if(table[i][j]!=0)
{ // cout<<"-";
return sudoku_solver(table,i,j+1,n);
}
for(int t=1;t<9;t++)
{
if(is_safe(table,i,j,t))
{
table[i][j]=t;
bool age_solve_karra=sudoku_solver(table,i,j+1,n);
if(age_solve_karra==true)
{
return true;
}
table[i][j]=0;
}
}
return false;
}
int main() {
int table[][9]={
{0,0,9, 0,0,0, 0,0,0},
{0,0,0, 0,5,7, 6,8,9},
{5,0,0, 4,6,9, 1,0,3},
{0,1,0, 5,4,0, 0,0,8},
{4,0,0, 0,0,0, 2,3,6},
{0,0,0, 7,2,3, 5,0,4},
{6,0,0, 0,0,0, 0,4,5},
{0,8,5, 1,0,4, 0,0,2},
{0,4,0, 6,0,5, 0,7,0}
};
bool dekha= sudoku_solver(table,0,0,9);
}