Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- int yiha,n,m,step[100][100],minim=100000,x,y,p,q;
- char a[100][100];
- int cari(int r,int s)
- {
- a[r][s]='#';
- if(a[r][s+1]!='#')
- {
- step[r][s+1]=step[r][s]+1;
- if(r==x && s+1==y)
- {
- minim=min(step[r][s+1],minim);
- a[r][s+1]='x';
- yiha=1;
- goto sini;
- }
- cari(r,s+1);
- }
- if(a[r+1][s]!='#')
- {
- step[r+1][s]=step[r][s]+1;
- if(r+1==x && s==y)
- {
- minim=min(step[r+1][s],minim);
- a[r+1][s]='x';
- yiha=1;
- goto sini;
- }
- cari(r+1,s);
- }
- if(a[r][s-1]!='#')
- {
- step[r][s-1]=step[r][s]+1;
- if(r==x && s-1==y)
- {
- minim=min(step[r][s-1],minim);
- a[r][s-1]='x';
- yiha=1;
- goto sini;
- }
- cari(r,s-1);
- }
- if(a[r-1][s]!='#')
- {
- step[r-1][s]=step[r][s]+1;
- if(r-1==x && s==y)
- {
- minim=min(step[r-1][s],minim);
- a[r-1][s]='x';
- yiha=1;
- goto sini;
- }
- cari(r-1,s);
- }
- sini:;
- if(yiha) a[r][s]='x';
- else
- a[r][s]=' ';
- step[r][s]=0;
- }
- int main()
- {
- scanf("%d %d",&n,&m);
- for(int i=1;i<=n;i++)
- {
- getchar();
- for(int j=1;j<=m;j++)
- scanf("%c",&a[i][j]);
- }
- // printf("%s\n", a[0]);
- scanf("%d %d",&p,&q);
- scanf("%d %d",&x,&y);
- step[p][q]=1;
- for(int i=1;i<=n;i++)
- printf("%s\n",a[i]+1);
- cari(p,q);
- printf("%d\n",minim-1);
- for(int i=1;i<=n;i++)
- printf("%s\n",a[i]+1);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement