Advertisement
Saleh127

UVA 750

Sep 1st, 2020
163
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.17 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define ll long long
  4. int ans[50]={0},in=8,r,c,n,sln,t;
  5. int valid(int x,int y)
  6. {
  7.  
  8. if(r==x || c==y || (abs(r-x)==abs(c-y)))
  9. {
  10. return 0;
  11. }
  12. for(int i=1;i<y;i++)
  13. {
  14. if(ans[i]==x || (abs(x-ans[i])==abs(i-y)))
  15. {
  16. return 0;
  17. }
  18. }
  19. return 1;
  20. }
  21.  
  22.  
  23. void backtrack(int x)
  24. {
  25. if(x==9)
  26. {
  27. int i=0;
  28. sln++;
  29. printf("%2d ",sln);
  30. for(i=1;i<8;i++)
  31. {
  32. printf("%d ",ans[i]);
  33. }
  34. printf("%d\n",ans[i]);
  35. return ;
  36. }
  37. if(x==c)
  38. {
  39. backtrack(x+1);
  40. return ;
  41. }
  42. for(int i=1;i<=8;i++)
  43. {
  44. if(valid(i,x))
  45. {
  46. ans[x]=i;
  47. backtrack(x+1);
  48. }
  49. }
  50. }
  51.  
  52. int main()
  53. {
  54. ios_base::sync_with_stdio(0);
  55. cin.tie(0);cout.tie(0);
  56.  
  57. scanf("%d",&t);
  58.  
  59. for(int i=1;i<=t;i++)
  60. {
  61. scanf("%d %d",&r,&c);
  62. ans[c]=r;
  63. sln=0;
  64. printf("SOLN COLUMN\n");
  65. printf(" # 1 2 3 4 5 6 7 8\n\n");
  66.  
  67. backtrack(1);
  68. if(i<t) printf("\n");
  69. }
  70.  
  71. return 0;
  72. }
  73.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement