Submission
Status:
[PP-SSSSSSS]
Subtask/Task Score:
{0/100}
Score: 0
User: santanaja07
Problemset: Path Finding
Language: cpp
Time: 0.003 second
Submitted On: 2025-09-28 21:27:25
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
cin>>n;
char c[n][n];
int s;
cin>>s;
int x[s],y[s];
for(int i=0;i<s;i++){
cin>>y[i]>>x[i];
}
for(int i=0;i<s;i++){
if(x[i]>=n||x[i]<0||y[i]>=n||y[i]<0){
cout<<"Out of range";
return 0;
}
}
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
c[i][j]='_';
}
}
int left,up;
for(int k=0;k<s;k++){
c[y[k]][x[k]]=char('A'+k);
}
int maxy;
int miny;
int maxx,minx;
for(int k=0;k<s-1;k++){
left=x[k+1]-x[k];
up=y[k+1]-y[k];
if(left==0){
maxy= max(y[k],y[k+1]);
miny=min(y[k],y[k+1]);
if(up>0){
for(int p=miny+1;p<maxy;p++){
c[p][x[k+1]]='v';
c[y[k]][x[k]]=char('A'+k);
}
}else if(up<0){
for(int p=miny+1;p<maxy;p++){
c[p][x[k+1]]='^';
c[y[k]][x[k]]=char('A'+k);
}
}
}
if(up==0){
maxx= max(x[k],x[k+1]);
minx=min(x[k],x[k+1]);
if(left>0){
for(int p=minx+1;p<maxx;p++){
c[y[k]][p]='>';
c[y[k]][x[k]]=char('A'+k);
}
}else if(left<0){
for(int p=minx+1;p<maxx;p++){
c[y[k]][p]='<';
c[y[k]][x[k]]=char('A'+k);
}
}
}
if(left==0||up==0){
continue;
}
if(left>0){
for(int p=x[k]+1;p<x[k+1];p++){
c[y[k]][p]='>';
}
}else if(left<0){
for(int p=x[k+1];p<x[k];p++){
c[y[k]][p]='<';
}
}
if(up>0){
for(int p=y[k];p<y[k+1];p++){
c[p][x[k+1]]='v';
c[y[k]][x[k]]=char('A'+k);
}
}else if(up<0){
for(int p=y[k+1]+1;p<=y[k];p++){
c[p][x[k+1]]='^';
c[y[k]][x[k]]=char('A'+k);
}
}
}
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
cout<<c[i][j];
}
cout<<"\n";
}
}