Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Intr-o cladire este plasat un hot. Sa se afiseze toate posibilatite de iesire. El se poate deplasa in toate cele 8 directii.
- #include<iostream>
- #include<fstream>
- using namespace std;
- ifstream f("cladire.in");
- const int x[]={1, 1, 0,-1,-1,-1,0,1};
- const int y[]={0,-1,-1,-1, 0, 1,1,1};
- int a[10][10], b[10][10], i, j, n, sol, js, jp, is, ip;
- void citire()
- {
- f>>n;
- for(i=1; i<=n; i++)
- for(j=1; j<=n; j++)
- f>>a[i][j];
- }
- void afis()
- {
- sol++;
- cout<<"Solutia nr. "<<sol<<'\n';
- cout<<'\n';
- int i,j;
- for(i=1; i<=n; i++)
- {
- for(j=1; j<=n; j++)
- cout<<b[i][j]<<" ";
- cout<<"\n";
- }
- cout<<"\n";
- }
- void back(int i, int j, int pas)
- {
- int ii, jj, k;
- for(k=0; k<=7; k++)
- {
- ii=i+x[k];
- jj=j+y[k];
- if(ii>=1 && ii<=n && jj>=1 && jj<=n)
- if(a[ii][jj]==1 && b[ii][jj]==0)
- {
- b[ii][jj]=pas;
- if(ii==1 || ii==n && jj==1 || jj==n) afis();
- else back(ii,jj,pas+1);
- b[ii][jj]=0;
- }
- }
- }
- int main()
- {
- citire();
- for(i=1; i<=n; i++)
- for(j=1; j<=n; j++) b[i][j]=0;
- cout<<"Pozitia hot: ";
- cout<<"* Linie plecare: "; cin>>ip;
- cout<<"* Coloana plecare: "; cin>>jp;
- sol=0;
- b[ip][jp]=1;
- back(ip, jp, 2);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment