Advertisement
a53

Acces

a53
Oct 2nd, 2017
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.84 KB | None | 0 0
  1. #include <fstream>
  2. using namespace std;
  3. ifstream fin("acces.in");
  4. ofstream fout("acces.out");
  5. int n,m;
  6. short a[1001][1001];
  7. int x[1000001],y[1000001];
  8. char P[1001][1001];
  9. int xp,yp;
  10.  
  11.  
  12. const int dx[]={0,0,1,-1},
  13. dy[]={1,-1,0,0};
  14.  
  15. int main()
  16. {
  17. fin>>n>>m;
  18. for(int i=1;i<=n;i++)
  19. for(int j=1;j<=m;j++)
  20. {
  21. fin>>P[i][j];
  22. if(P[i][j]=='P')
  23. xp=i,yp=j;
  24. }
  25.  
  26. fin.close();
  27.  
  28. int st,dr;
  29. st=dr=1;
  30. x[dr]=xp,y[dr]=yp;
  31. a[x[1]][y[1]]=1;
  32. while(st<=dr)
  33. {
  34. int i=x[st],j=y[st];
  35. for(int k=0;k<4;k ++)
  36. {
  37. int ii=i+dx[k],jj=j+dy[k];
  38. if(ii>0&&ii<=n&&jj>0&&jj<=m&&P[ii][jj]!='#'&&a[ii][jj]==0)
  39. {
  40. a[ii][jj]=a[i][j]+1;
  41. dr++;
  42. x[dr]=ii,y[dr]=jj;
  43. }
  44. }
  45. st++;
  46. }
  47. for(int i=1;i<=n;i++)
  48. {
  49. for(int j=1;j<=m;j++)
  50. fout<<a[i][j]-1<<' ';
  51. fout<<'\n';
  52. }
  53. fout.close();
  54. return 0;
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement