Submission

Status:

[PPPPPPPPPP]

Subtask/Task Score:

{100/100}

Score: 100

User: Prap

Problemset: Path Finding

Language: cpp

Time: 0.002 second

Submitted On: 2026-05-04 10:34:12

#include <iostream>
#include <string>
#include <vector>
#include <cmath>
#include <algorithm>
using namespace std;
int main() {
	int N;
	cin>>N;
	int nPoint;
	cin>>nPoint;
	int coord[nPoint][2];
	bool outrange = false;
	for (int i = 0; i<nPoint; i++) {
		cin>>coord[i][0]>>coord[i][1];
		if (coord[i][0] < 0 || coord[i][1] < 0 || coord[i][0] > N || coord[i][1] > N) {
			outrange = true;
		}
	}
	if (outrange) {
		cout<<"Out of range";
		return 0;
	}
	char map[N][N];
	for (int i = 0; i<N; i++) {
		for (int j = 0; j<N; j++) {
			map[i][j] = '_';
		}
	}
	for (int i = 0; i<nPoint-1; i++) {
		int where = coord[i][1] - coord[i+1][1];
		int stch = 0;
		map[coord[i][0]][coord[i][1]] = 'A' + i;
		if (coord[i][1] - coord[i+1][1] > 0) {
			for (int j = 1; j<=coord[i][1] - coord[i+1][1]; j++) {
				map[coord[i][0]][coord[i][1]-j] = '<';
			}
		}
		else if (coord[i][1] - coord[i+1][1] < 0) {
			for (int j = 1; j<=coord[i+1][1] - coord[i][1]; j++) {
				map[coord[i][0]][coord[i][1]+j] = '>';
			}
		}
		else {
			stch = 1;
		}
		
		if (coord[i][0] - coord[i+1][0] > 0) {
			for (int j = stch; j<=coord[i][0] - coord[i+1][0]; j++) {
				map[coord[i][0]-j][coord[i][1]-where] = '^';
			}
		}
		else if (coord[i][0] - coord[i+1][0] < 0) {
			for (int j = stch; j<=coord[i+1][0] - coord[i][0]; j++) {
				map[coord[i][0]+j][coord[i][1]-where] = 'v';
			}
		}
		else {	}
	}
	int lasta = nPoint-1;
	map[coord[lasta][0]][coord[lasta][1]] = 'A' + lasta;
	for (int i = 0; i<N; i++) {
		for (int j = 0; j<N; j++) {
			cout<<map[i][j];
		}
		cout<<"\n";
	}
	return 0;
}