Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <fstream>
- using namespace std;
- ifstream fin("acces.in");
- ofstream fout("acces.out");
- int n,m;
- short a[1001][1001];
- int x[1000001],y[1000001];
- char P[1001][1001];
- int xp,yp;
- const int dx[]={0,0,1,-1},
- dy[]={1,-1,0,0};
- int main()
- {
- fin>>n>>m;
- for(int i=1;i<=n;i++)
- for(int j=1;j<=m;j++)
- {
- fin>>P[i][j];
- if(P[i][j]=='P')
- xp=i,yp=j;
- }
- fin.close();
- int st,dr;
- st=dr=1;
- x[dr]=xp,y[dr]=yp;
- a[x[1]][y[1]]=1;
- while(st<=dr)
- {
- int i=x[st],j=y[st];
- for(int k=0;k<4;k ++)
- {
- int ii=i+dx[k],jj=j+dy[k];
- if(ii>0&&ii<=n&&jj>0&&jj<=m&&P[ii][jj]!='#'&&a[ii][jj]==0)
- {
- a[ii][jj]=a[i][j]+1;
- dr++;
- x[dr]=ii,y[dr]=jj;
- }
- }
- st++;
- }
- for(int i=1;i<=n;i++)
- {
- for(int j=1;j<=m;j++)
- fout<<a[i][j]-1<<' ';
- fout<<'\n';
- }
- fout.close();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement