Submission
Status:
[PPPPPPPPPP]
Subtask/Task Score:
{100/100}
Score: 100
User: lingusso
Problemset: Path Finding
Language: cpp
Time: 0.003 second
Submitted On: 2026-05-04 11:02:56
#include<iostream>
#include<string>
#include<vector>
using namespace std;
int main(){
int n;
cin>>n;
vector<string> v(n);
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
v[i]+="_";
}
}
int b;
cin>>b;
int x,y,nx,ny;
cin>>y>>x;
if(x>=n||x<0||y>=n||y<0){
cout<<"Out of range";
return 0;
}
v[y][x]='A';
//looping
for(int j=1;j<b;j++){
cin>>ny>>nx;
if(nx>=n||nx<0||ny>=n||ny<0){
cout<<"Out of range";
return 0;
}
if(nx>x/*right*/){
for(int i=x+1;i<=nx;i++){
v[y][i]='>';
}
if(ny>y/*down*/){
for(int i=y;i<=ny;i++){
v[i][nx]='v';
}
}
else if(ny<y/*up*/){
for(int i=y;i>=ny;i--){
v[i][nx]='^';
}
}
}
else if(nx<x/*left*/){
for(int i=x-1;i>=nx;i--){
v[y][i]='<';
}
if(ny>y/*down*/){
for(int i=y;i<=ny;i++){
v[i][nx]='v';
}
}
else if(ny<y/*up*/){
for(int i=y;i>=ny;i--){
v[i][nx]='^';
}
}
}
else{
if(ny>y/*down*/){
for(int i=y+1;i<=ny;i++){
v[i][nx]='v';
}
}
else if(ny<y/*up*/){
for(int i=y-1;i>=ny;i--){
v[i][nx]='^';
}
}
}
v[ny][nx]='A'+j;
y=ny;
x=nx;
}
for(int j=0;j<n;j++){
cout<<v[j]<<"\n";
}
return 0;
}