Submission

Status:

[PPPPPPPPPP]

Subtask/Task Score:

{100/100}

Score: 100

User: santanaja07

Problemset: Path Finding

Language: cpp

Time: 0.003 second

Submitted On: 2025-09-28 22:22:21

#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){
			c[y[k]][x[k]]=char('A'+k);
			continue;
		}	
		if(left>0){
			for(int p=x[k]+1;p<x[k+1];p++){
				c[y[k]][p]='>';
			}
			c[y[k]][x[k]]=char('A'+k);
		}else if(left<0){
			for(int p=x[k+1];p<x[k];p++){
				c[y[k]][p]='<';
			}
			c[y[k]][x[k]]=char('A'+k);
		}
		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);
		}
		c[y[k]][x[k]]=char('A'+k);
	}
	c[y[s-1]][x[s-1]]=char('A'+s-1);
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
			cout<<c[i][j];
		}
		cout<<"\n";
	}
}