Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- int n,m;
- char lab[1000][1000];
- void svet_go (int i, int j, int di, int dj)
- {
- int curi=0, curj=0;
- if ((!((lab[i+di][j]=='*')&&(lab[i][dj+j]=='*'))) && (((i+di>-1) && (i+di<n))|((j+dj>-1) && (j+dj<m))))
- {
- if ((i+di>-1) && (i+di<n)) curi=i+di; else {curi=i; di=-di; }
- if ((j+dj>-1) && (j+dj<m)) curj=j+dj; else {curj=j; dj=-dj; }
- if ((lab[curi][curj]!='*') && (lab[curi][curj]!='X'))
- {
- if ((di*dj>0) && (lab[curi][curj]=='.')) lab[curi][curj]='\\';
- if ((di*dj>0) && (lab[curi][curj]=='/')) lab[curi][curj]='X';
- if ((di*dj<0) && (lab[curi][curj]=='.')) lab[curi][curj]='/';
- if ((di*dj<0) && (lab[curi][curj]='\\')) lab[curi][curj]='X';
- svet_go(curi, curj, di, dj);
- }
- if (lab[curi][curj]=='*') {
- if ((lab[curi-di][curj]=='*') && (lab[curi][curj-dj]!='*'))
- {
- curj=curj-dj;
- dj=-dj;
- if ((di*dj>0) && (lab[curi][curj]=='.')) lab[curi][curj]='\\';
- if ((di*dj>0) && (lab[curi][curj]=='/')) lab[curi][curj]='X';
- if ((di*dj<0) && (lab[curi][curj]=='.')) lab[curi][curj]='/';
- if ((di*dj<0) && (lab[curi][curj]=='\\')) lab[curi][curj]='X';
- svet_go(curi, curj, di, dj);
- }
- if ((lab[curi-di][curj]!='*') && (lab[curi][curj-dj]='*'))
- {
- curi=curi-di;
- di=-di;
- if ((di*dj>0) && (lab[curi][curj]=='.')) lab[curi][curj]='\\';
- if ((di*dj>0) && (lab[curi][curj]=='/')) lab[curi][curj]='X';
- if ((di*dj<0) && (lab[curi][curj]=='.')) lab[curi][curj]='/';
- if ((di*dj<0) && (lab[curi][curj]=='\\')) lab[curi][curj]='X';
- svet_go(curi, curj, di, dj);
- }
- }
- }
- }
- int main()
- {
- int i,j,sveti,svetj;
- cin>>n>>m;
- for (i=0; i!=n; ++i)
- for (j=0; j!=m; ++j)
- {
- cin>>lab[i][j];
- if (lab[i][j]=='X')
- {
- sveti=i;
- svetj=j;
- }
- }
- svet_go(sveti,svetj,1,1);
- svet_go(sveti,svetj,1,-1);
- svet_go(sveti,svetj,-1,1);
- svet_go(sveti,svetj,-1,-1);
- for (i=0; i!=n; ++i)
- {for (j=0; j!=m; ++j) cout<<lab[i][j]; cout<<endl;}
- }
Add Comment
Please, Sign In to add comment