Advertisement
Guest User

Untitled

a guest
Jul 21st, 2017
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.51 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. using namespace std;
  4. struct pct
  5. {
  6. int xi,xj;
  7. }x[50];
  8. int a[10][10],nr=0;
  9. int verificare(int k,int i,int j)
  10. {
  11. for(int p=1;p<=9;p++)
  12. {
  13. if(a[i][p]==k)
  14. return 0;
  15. if(a[p][j]==k)
  16. return 0;
  17. }
  18. int n1,m1,n2,m2;
  19. if(i<=3)
  20. {
  21. n1=1;n2=3;
  22. }
  23. else
  24. {
  25. if(i<=6)
  26. {n1=4;n2=6;}
  27. else
  28. {n1=7;n2=9;}
  29. }
  30. if(j<=3)
  31. {m1=1;m2=3;}
  32. else
  33. {
  34. if(j<=6)
  35. {m1=4;m2=6;}
  36. else
  37. {m1=7;m2=9;}
  38. }
  39. for(int p=n1;p<=n2;p++)
  40. for(int q=m1;q<=m2;q++)
  41. if(a[p][q]==k)
  42. return 0;
  43. return 1;
  44. }
  45. void backtrk(int x,int y)
  46. {
  47. if(x<=9&&y<=9)
  48. {
  49. for(int i=1;i<=9;i++)
  50. {
  51. if(verificare(i,x,y)&&a[x][y]==0)
  52. {
  53. a[x][y]=i;
  54.  
  55. }
  56.  
  57.  
  58. }
  59. backtrk(x,y+1);
  60. backtrk(x+1,y);
  61. backtrk(x+1,y+1);
  62.  
  63. }
  64.  
  65.  
  66. }
  67. int main()
  68. {
  69. ifstream f("f.in");
  70. ofstream g("sudoku.out");
  71. for(int i=1;i<=9;i++)
  72. for(int j=1;j<=9;j++)
  73. f>>a[i][j];
  74. for(int i=1;i<=9;i++)
  75. for(int j=1;j<=9;j++)
  76. if(a[i][j]==0)
  77. {
  78. nr++;
  79. x[nr].xi=i;
  80. x[nr].xj=j;
  81. }
  82. backtrk(1,1);
  83. for(int i=1;i<=9;i++)
  84. {
  85. for(int j=1;j<=9;j++)
  86. g<<a[i][j]<<" ";
  87. g<<"\n";
  88. }
  89. return 0;
  90. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement