Advertisement
Guest User

Andrey-Li

a guest
Oct 23rd, 2019
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.25 KB | None | 0 0
  1. #include <iostream>
  2. #include <stdlib.h>
  3. using namespace std;
  4. int d[5000] [5000] ;
  5. string b[5000] [5000] ;
  6. void way(int x, int y)
  7. {if(d[x][y]-1==d[x+1][y]){d[x][y]=-3;way(x+1,y);}else{
  8.    if(d[x][y]-1==d[x-1][y]){d[x][y]=-3;way(x-1,y);}else{
  9.         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);}}}}}
  10. void func(int x, int y,int n) {
  11. if (d[x][y]==0||d[x][y]>n){
  12.     d[x][y]=n;
  13.     func(x+1,y,n+1);
  14.     func(x-1,y,n+1);
  15.     func(x,y+1,n+1);
  16.     func(x,y-1,n+1);
  17. }
  18. }
  19.  
  20. int main() {
  21. int n,m,xn,yn,xk,yk;
  22. cin>>n>>m;
  23. cin>>xn>>yn;
  24. cin>>xk>>yk;
  25. xn=xn+1; yn=yn+1;
  26. xk=xk+1; yk=yk+1;
  27.  
  28. for (int i = 0; i<n+2; i++)
  29.     {
  30.     for (int j = 0; j<m+2; j++)
  31.     {
  32.     if (i==0||j==0||i==n+1||j==m+1){d[i][j]=-1;}else{int p; cin>>p; d[i][j]=p;}    
  33.     }} 
  34.    
  35.  
  36.     func(xn,yn,1);
  37.    
  38.   way(xk,yk);
  39.   d[xn][yn]=-3;
  40.    
  41.    
  42.   for (int i = 0; i<n+2; i++)
  43.     {
  44.     for (int j = 0; j<m+2; j++)
  45.     {
  46.     if(d[i][j]==-1){b[i][j]="#";}
  47.     if(d[i][j]==-3){b[i][j]="+";}
  48.     if(d[i][j]>-1){b[i][j]=" ";}
  49.     }}b[xn][yn]="n";b[xk][yk]="k";
  50.    
  51.     for (int i = 0; i<n+2; i++)
  52.     {
  53.     for (int j = 0; j<m+2; j++)
  54.     {
  55.     cout<<b[i][j]<<" ";    
  56.     }cout<<endl;}  
  57.    
  58.     return 0;
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement