Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- int n,m;
- bool a[101][101];
- int dx[]={-2,-1,+1,+2,+2,+1,-1,-2};
- int dy[]={-1,-2,-2,-1,+1,+2,+2,+1};
- ifstream f ("saritura_calului1.in");
- ofstream g ("saritura_calului1.out");
- bool valid(int i,int j)
- {
- return (i>0 && i<=n && j>0 && j<=m && a[i][j]==0);
- }
- bool solutie ()
- {
- int i,j;
- for(i=1;i<=n;i++)
- for(j=1;j<=m;j++)
- if(a[i][j]==0)
- return 0;
- return 1;
- }
- void afis ()
- {
- int i,j;
- for(i=1;i<=n;i++)
- {
- for(j=1;j<=m;j++)
- g<<a[i][j]<<' ';
- g<<'\n';
- }
- }
- void bkt(int k,int startx,int starty)
- {
- int x9,y9,i;
- if(solutie())
- {
- afis();
- exit(0);
- }
- for(i=0;i<8;i++)
- {
- x9=startx+dx[i];
- y9=starty+dy[i];
- if(valid(x9,y9))
- {
- cout<<k<<'\n';
- a[x9][y9]=k;
- bkt(k+1,x9,y9);
- a[x9][y9]=0;
- }
- }
- }
- int main()
- {
- int startx,starty,i,j;
- f>>n>>m>>startx>>starty;
- for(i=1;i<=n;i++)
- for(j=1;j<=m;j++)
- f>>a[i][j];
- a[startx][starty]=1;
- bkt(2,startx,starty);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement