Submission
Status:
PPPPPPP
Score: 100
User: Monasm
Problemset: สะท้อน
Language: cpp
Time: 0.003 second
Submitted On: 2024-09-28 17:15:51
#include <bits/stdc++.h>
using namespace std;
vector<string> trv = {"NE","SE","SW","NW"};
int gx[] = {-1,1,1,-1};
int gy[] = {1,1,-1,-1};
int dx[] = {1,-1,0,0};
int dy[] = {0,0,1,-1};
int main(){
int n;cin >> n;
int x,y;cin >> x >> y;
string dir;cin >> dir;
vector<string> adj(n);
for(auto &i:adj){
cin >> i;
}
while(0<=x&&x<n&&0<=y&&y<n){
adj[x][y] = '*';
for(int i=0;i<4;i++){
if(dir == trv[i]){
x+=gx[i];y+=gy[i];
for(int j=0;j<4;j++){
int nx = x+dx[j],ny = y+dy[j];
if(0<=nx&&nx<n&&0<=ny&&ny<n&&adj[nx][ny] == '#'){
if(dir == "SE"){
if(dy[j]){dir="SW";}
else{dir="NE";}
}
else if(dir == "NE"){
if(dy[j]){dir = "NW";}
else{dir = "SE";}
}
else if(dir == "SW"){
if(dy[j]==-1){dir ="SE";}
else{dir="NW";}
}
else{
if(dy[j]==-1){dir="NE";}
else{dir = "SW";}
}
}
}
break;
}
}
}
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
cout<<adj[i][j];
}
cout<<endl;
}
}