Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <stdlib.h>
- using namespace std;
- int d[5000] [5000] ;
- string b[5000] [5000] ;
- void way(int x, int y)
- {if(d[x][y]-1==d[x+1][y]){d[x][y]=-3;way(x+1,y);}else{
- if(d[x][y]-1==d[x-1][y]){d[x][y]=-3;way(x-1,y);}else{
- if(d[x][y]-1==d[x][y+1]){d[x][y]=-3;way(x,y+1);}else{if(d[x][y]-1==d[x][y-1]){d[x][y]=-3;way(x,y-1);}}}}}
- void func(int x, int y,int n) {
- if (d[x][y]==0||d[x][y]>n){
- d[x][y]=n;
- func(x+1,y,n+1);
- func(x-1,y,n+1);
- func(x,y+1,n+1);
- func(x,y-1,n+1);
- }
- }
- int main() {
- int n,m,xn,yn,xk,yk;
- cin>>n>>m;
- cin>>xn>>yn;
- cin>>xk>>yk;
- xn=xn+1; yn=yn+1;
- xk=xk+1; yk=yk+1;
- for (int i = 0; i<n+2; i++)
- {
- for (int j = 0; j<m+2; j++)
- {
- if (i==0||j==0||i==n+1||j==m+1){d[i][j]=-1;}else{int p; cin>>p; d[i][j]=p;}
- }}
- func(xn,yn,1);
- way(xk,yk);
- d[xn][yn]=-3;
- for (int i = 0; i<n+2; i++)
- {
- for (int j = 0; j<m+2; j++)
- {
- if(d[i][j]==-1){b[i][j]="#";}
- if(d[i][j]==-3){b[i][j]="+";}
- if(d[i][j]>-1){b[i][j]=" ";}
- }}b[xn][yn]="n";b[xk][yk]="k";
- for (int i = 0; i<n+2; i++)
- {
- for (int j = 0; j<m+2; j++)
- {
- cout<<b[i][j]<<" ";
- }cout<<endl;}
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement