Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- int L[8][8];
- int n,m,xs,ys,xb,yb;
- int dx[8]={-2,-1,1,2,2,1,-1,-2};
- int dy[8]={1,2,2,1,-1,-2,-2,-1};
- void citire()
- {
- cout<<"n=";cin>>n;
- cout<<"m=";cin>>m;
- for(int i=1;i<=n;i++)
- for(int j=1;j<=n;j++) f>>L[i][j];
- f.close();
- }
- void bordare()
- {
- for(int i=0;i<=n+1;i++)
- {
- L[i][0]=1;L[i][m+1]=1;
- }
- for(int i=0;i<=m+1;i++)
- {
- L[0][i]=1;L[n+1][i]=1;
- }
- for(int i=0;i<=n+1;i++)
- {
- L[i][0]=1;L[i][m+1]=1;
- }
- for(int i=0;i<=m+1;i++)
- {
- L[0][i]=1;L[n+1][i]=1;
- }
- }
- void afis()
- {
- g<<"sol nr"<<nrsol++<<endl;
- for(int i=1;i<=n;i++)
- {
- for(int j=1;j<=m;j++)
- if(L[i][j]==2)
- g<<'*';
- else g<<L[i][j];
- g<<endl;
- }
- }
- void cauta(int x,int y)
- {
- L[x][y]=2;
- if(x==xb&&y==yb)
- afis();
- else for (int dir=0;dir<8;dir++)
- if(!L[x+dx[dir]][y+dy[dir]])
- cauta(x+dx[dir],y+dy[dir]);
- L[x][y]=0;
- }
- int main()
- {citire();
- bordare();
- cauta(xs,ys);
- if(!nrsol)g<<"nu exista solutii"<<endl;
- g.close();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement