Advertisement
Guest User

bzzzui

a guest
Jan 28th, 2020
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.21 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. using namespace std;
  4. ifstream fin("soarece.in");
  5. ofstream fout("soarece.out");
  6. int n,m,ib,jb,solutii=0;
  7. int v[401],a[21][21];
  8. struct coordonate
  9. {
  10. int x;
  11. int y;
  12. };
  13. coordonate drum[401];
  14. int dirl[11]={-1,0,1,0},dirc[11]={0,1,0,-1};
  15. int verif(int k)
  16. {
  17. drum[k].x=drum[k-1].x+dirl[v[k]];
  18. drum[k].y=drum[k-1].y+dirc[v[k]];
  19. if(a[drum[k].x][drum[k].y]==1)
  20. return 0;
  21. return 1;
  22. }
  23. void back(int k)
  24. {
  25. if(drum[k-1].x==ib && drum[k-1].y==jb)
  26. {
  27. solutii++;
  28. }
  29. else
  30.  
  31. {
  32. for(int q=0;q<4;q++)
  33. {
  34. v[k]=q;
  35. if(verif(k))
  36. {
  37. a[drum[k].x][drum[k].y]=1;
  38. back(k+1);
  39. a[drum[k].x][drum[k].y]=0;
  40. }
  41. }
  42. }
  43. }
  44. int main()
  45. {
  46. fin>>n>>m;
  47. for(int i=1;i<=n;i++)
  48. for(int j=1;j<=m;j++)
  49. {
  50. fin>>a[i][j];
  51. }
  52. for(int i=0;i<=n+1;i++)
  53. for(int j=0;j<=m+1;j++)
  54. if(i==0 || i==n+1 || j==0 || j==m+1)
  55. a[i][j]=1;
  56. fin>>drum[0].x>>drum[0].y;
  57. a[drum[0].x][drum[0].y]=1;
  58. fin>>ib>>jb;
  59. back(1);
  60. fout<<solutii;
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement