Submission

Status:

[-SSSSSSSSS]

Subtask/Task Score:

{0/100}

Score: 0

User: wora

Problemset: Path Finding

Language: cpp

Time: 0.003 second

Submitted On: 2026-10-12 21:46:08

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

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int N, nPoint;
    cin >> N >> nPoint;

    vector<pair<int, int>> points(nPoint);
    bool valid = true;

    for (int i = 0; i < nPoint; i++) {
        cin >> points[i].first >> points[i].second;

        int r = points[i].first;
        int c = points[i].second;

        if (r < 0 || r >= N || c < 0 || c >= N) {
            valid = false;
        }
    }

    if (!valid) {
        cout << "Out of range\n";
        return 0;
    }

    vector<string> grid(N, string(N, '_'));

    for (int i = 0; i < nPoint; i++) {
        int r = points[i].first;
        int c = points[i].second;

        if (i == 0) {
            grid[r][c] = char('A' + i);
        }

        if (i == nPoint - 1) {
            grid[r][c] = char('A' + i);
        }

        if (i + 1 < nPoint) {
            int nr = points[i + 1].first;
            int nc = points[i + 1].second;

            while (c != nc) {
                if (c < nc) {
                    c++;
                    grid[r][c] = '>';
                } else {
                    c--;
                    grid[r][c] = '<';
                }
            }

            while(c != nc){
                int nextC = (c < nc) ? c + 1 : c - 1;

                if(nextC != nc){
                    grid[r][nextC] = (c < nc) ? '>' : '<';
                }

                c = nextC;
            }

            grid[nr][nc] = char('A' + i + 1);
        }
    }

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

    return 0;
}