Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- using namespace std;
- int n,m,is, js, ib, jb, v[101][101];
- int l[]={1, 0, -1, 0};
- int c[]={0, 1, 0, -1};
- int sl=0;
- ifstream fin("soarece.in");
- ofstream fout("soarece.out");
- void read()
- {
- fin>>n>>m;
- for(int i=1;i<=n;i++)
- for(int j=1;j<=m;j++)
- {
- fin>>v[i][j];
- if(v[i][j]==1) v[i][j]=-1;
- }
- fin>>is>>js>>ib>>jb;
- }
- bool verif(int ll, int cc)
- {
- return (v[ll][cc]==0 && ll>0 && ll<=n && cc<=m && cc>0);
- }
- bool sol(int i, int j)
- {
- return (i==ib && j==jb);
- }
- void backtracking(int i, int j, int pas)
- {
- if(sol(i, j))
- sl++;
- else
- for(int k=0;k<=3;k++)
- {
- int in=i+l[k];
- int jn=j+c[k];
- if(verif(in, jn))
- {
- v[in][jn]=pas;
- backtracking(in, jn, pas+1);
- v[in][jn]=0;
- }
- }
- }
- int main()
- {
- read();
- v[is][js]=1;
- backtracking(is, js, 2);
- fout<<sl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement