Advertisement
Guest User

Untitled

a guest
Jan 28th, 2020
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.48 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. ifstream fin("traseucal.in");
  4. ofstream fout("traseucal.out");
  5.  
  6. int a[15][15];
  7. int n, m;
  8. pair<int, int> D[230];
  9. int di[8]={-1,1,-1,1,-2,2,-2,2};
  10. int dj[8]={-2,-2,2,2,-1,-1,1,1};
  11.  
  12. int ok=1;
  13. int rez=0;
  14.  
  15. int contur (int i, int j)
  16. {
  17. return i>=1 && i<=n && j>=1 && j<=n;
  18. }
  19.  
  20. void backt(int i, int j, int pas)
  21. {
  22. //cout<<i<<" "<<j<<endl;
  23. a[i][j]=pas;
  24. D[pas]={i,j};
  25. //cout<<"1";
  26.  
  27. if(i==n && j==m)
  28. {
  29. for(int k=1;k<=pas;k++)
  30. {
  31. cout<<D[k].first<<" "<<D[k].second<<endl;
  32. }
  33. rez=pas;
  34. ok=0;
  35. }
  36. else
  37. {
  38. for(int k=0;k<8 && ok!=0 ;k++)
  39. {
  40. int nexti=i+di[k];
  41. int nextj=j+dj[k];
  42. if(a[nexti][nextj]==0 && contur(nexti, nextj)==1)
  43. {
  44. backt(nexti,nextj,pas+1);
  45. }
  46. }
  47. }
  48. a[i][j]=0;
  49.  
  50. }
  51.  
  52. int main()
  53. {
  54. int i, j;
  55. fin>>n>>m;
  56. for(i=1;i<=n;i++)
  57. {
  58. for(j=1;j<=m;j++)
  59. {
  60. fin>>a[i][j];
  61. }
  62. }
  63.  
  64. backt(1,1,1);
  65. memset(a,0,sizeof(a));
  66.  
  67. // cout<<D[1].first<<" "<<D[1].second;
  68. int aux=0;
  69. for(i=1;i<=rez;i++)
  70. {
  71. aux++;
  72. a[D[i].first][D[i].second]=aux;
  73. }
  74.  
  75. for(i=1;i<=n;i++)
  76. {
  77. for(j=1;j<=m;j++)
  78. {
  79. fout<<a[i][j]<<" ";
  80. }
  81. fout<<endl;
  82. }
  83.  
  84. fin.close();
  85. fout.close();
  86. return 0;
  87.  
  88. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement