SHARE
TWEET

bzzzui

a guest Jan 28th, 2020 88 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top