Submission

Status:

[PP-SSSSSSS]

Subtask/Task Score:

{0/100}

Score: 0

User: Bermmmm

Problemset: Path Finding

Language: cpp

Time: 0.002 second

Submitted On: 2025-10-15 10:42:08

#include <bits/stdc++.h>
using namespace std;

int main() {
    int N,n;
    cin >> N >> n;

    int x[n],y[n];
    for (int i = 0;i<n;i++) {
        cin >> y[i] >> x[i];
    }

    for (int i = 0;i<n;i++) {
        if (x[i] >= N || x[i] < 0 || y[i] >= N || y[i] < 0) {
            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<n;i++) {
        map[y[i]][x[i]] = 'A' + i;
    }


    for (int i = 0;i<n-1;i++) {
        int y1 = y[i] , x1 = x[i];
        int y2 = y[i+1] , x2 = x[i+1];

        if (x1 > x2) {
            for (int j = x1-1 ; j>x2 ; j--) {
                if (map[y1][j] == '_' || map[y1][j] == '^' || map[y1][j] == 'v' || map[y1][j] == '>') {
                    map[y1][j] = '<';
                }
            }
        }

        else if (x1 < x2) {
            for (int j = x1+1 ; j < x2 ; j++) {
                if (map[y1][j] == '_' || map[y1][j] == '^' || map[y1][j] == 'v' || map[y1][j] == '<') {
                    map[y1][j] = '>';
                }
            }
        }

        if (y1 > y2) {
            for (int j = y1 ; j > y2 ; j--) {
                if (map[j][x2] == '_' || map[j][x2] == '<' || map[j][x2] == '>'|| map[j][x2] == 'v') {
                    map[j][x2] = '^';
                }
            }
        }

        else if (y1 < y2) {
            for (int j = y1 ; j < y2 ; j++) {
                if (map[j][x2] == '_' || map[j][x2] == '<' || map[j][x2] == '>' || map[j][x2] == '^') {
                    map[j][x2] = 'v';
                }
            }
        }

    }

    for (int i = 0;i<N;i++) {
        for (int j = 0;j<N;j++) {
            cout << map[i][j];
        }
        cout << '\n';
    }


    


}