Submission
Status:
xxxxxxxxxx
Subtask/Task Score:
0/100
Score: 0
User: SayRo
Problemset: กราฟสัญญาณดิจิทัล
Language: cpp
Time: 0.004 second
Submitted On: 2026-10-11 18:18:19
#include<bits/stdc++.h>
using namespace std;
vector<vector<char>> grid;
int dx[4]={1,1,-1,-1};
int dy[4]={1,-1,1,-1};
void solve(int n,int y,int x,string s){
if(grid[y][x]=='#') return;
grid[y][x]='*';
while(y>=0&&y<n&&x>=0&&x<n){
int idx;
if(s=="NE") idx=1;
else if(s=="SE") idx=0;
else if(s=="SW") idx=2;
else if(s=="NW") idx=3;
y+=dy[idx],x+=dx[idx];
if(y<0||x<0||x>=n||y>=n) return;
if(grid[y][x]=='.') grid[y][x]='*';
if(idx==0&&x+1<n){
if(grid[y][x+1]=='#') s="SW";
}else if(idx==0&&y+1<n){
if(grid[y+1][x]=='#') s="NE";
}else if(idx==1&&x+1<n){
if(grid[y][x+1]=='#') s="NW";
}else if(idx==1&&y-1>=0){
if(grid[y-1][x]=='#') s="SW";
}else if(idx==2&&x-1>=0){
if(grid[y][x-1]=='#') s="SE";
}else if(idx==2&&y+1<n){
if(grid[y+1][x]=='#') s="NW";
}else if(idx==3&&x-1>=0){
if(grid[y][x-1]=='#') s="NE";
}else if(idx==3&&y-1>=0){
if(grid[y-1][x]=='#') s="SW";
}
}
}
int main(){
int n,x,y;
string s;
cin>>n>>y>>x>>s;
grid.resize(n,vector<char>(n));
for(int i=0;i<n;i++){
string ss;
cin>>ss;
for(int j=0;j<n;j++) grid[i][j]=ss[j];
}
solve(n,y,x,s);
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
cout<<grid[i][j];
}
cout<<"\n";
}
}