Submission

Status:

[-SSSSSSSSS]

Subtask/Task Score:

{0/100}

Score: 0

User: santanaja07

Problemset: Path Finding

Language: cpp

Time: 0.002 second

Submitted On: 2025-09-28 21:05:41

#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++){
		for(int i=0;i<n;i++){
			for(int j=0;j<n;j++){
				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';
						}
					}else if(up<0){
						for(int p=miny+1;p<maxy;p++){
							c[p][x[k+1]]='^';
						}
					}
				}
				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]='>';
					}
				}else if(left<0){
					for(int p=minx+1;p<maxx;p++){
						c[y[k]][p]='<';
					}
				}
				}
				if(left==0||up==0){
					break;
				}	
				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]+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';
					}
				}else if(up<0){
					for(int p=y[k+1]+1;p<=y[k];p++){
						c[p][x[k+1]]='^';
					}
				}
			}
		}
	}
	for(int k=0;k<s;k++){
		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";
	}
}