Submission

Status:

[PPPPPPPPPP]

Subtask/Task Score:

{100/100}

Score: 100

User: ChanakanStudy

Problemset: Path Finding

Language: cpp

Time: 0.004 second

Submitted On: 2026-10-11 15:59:05

#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
#include <cmath>
#include <queue>
#include <stack>
#include <climits>
#include <map>
#include <numeric>
#include <iomanip>
using namespace std;
using ll = long long;

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

    int n;
    cin >> n;
    char a[n][n];
    for(int i = 0;i<n;i++) {
        for(int j = 0;j<n;j++) {
            a[i][j] = '_';
        }
    }

    int q;
    cin >> q;
    int count = 0;
    bool check = true;
    while(q--) {
        int x,y,rememberx,remembery;
        cin >> x >> y;
        if(x < 0 || x >= n || y < 0 || y >= n) {
            check = false;
            // cout << "Out of range";
            continue;
        }
        a[x][y] = char('A' + count);
        if(count == 0) {
            rememberx = x;
            remembery = y;
        }
        else {
            if(y > remembery-1) {
                while(y > remembery) {
                    remembery += 1;
                    if(a[rememberx][remembery] != char('A' + count)) {
                        a[rememberx][remembery] = '>';
                    }
                }
            }
            else if (y < remembery+1) {
                while(y < remembery) {
                    remembery -= 1;
                    if(a[rememberx][remembery] != char('A' + count)) {
                        a[rememberx][remembery] = '<';
                    }
                }
            }
            if(x > rememberx) {
                if(a[rememberx][remembery] == '>' || a[rememberx][remembery] == '<') {
                    a[rememberx][remembery] = 'v';
                }
                while(x > rememberx) {
                    rememberx += 1;
                    if(a[rememberx][remembery] != char('A' + count) || a[rememberx][remembery] == '>' || a[rememberx][remembery] == '<') {
                        a[rememberx][remembery] = 'v';
                    }
                }
            }
            else if(x < rememberx) {
                if(a[rememberx][remembery] == '>' || a[rememberx][remembery] == '<') {
                    a[rememberx][remembery] = '^';
                }

                while(x < rememberx) {
                    rememberx -= 1;
                    if(a[rememberx][remembery] != char('A' + count) || a[rememberx][remembery] == '>' || a[rememberx][remembery] == '<') {
                        a[rememberx][remembery] = '^';
                    }
                }
            }

            rememberx = x;
            remembery = y;
        }
        count++;
    }
    if(check) {
        for(int i = 0;i<n;i++) {
            for(int j = 0;j<n;j++) {
                cout << a[i][j];
            }
            cout << '\n';
        }
    }
    else {
        cout << "Out of range";
    }
    return 0;
}