Submission

Status:

[PP-SSSSSSS]

Subtask/Task Score:

{0/100}

Score: 0

User: ZanTy

Problemset: Path Finding

Language: cpp

Time: 0.005 second

Submitted On: 2026-10-09 12:45:58

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

int main(){
    int n,q;
    cin >> n >> q;
    int targetx[q-1];
    int targety[q-1];
    int x[q];
    int y[q];
    char arr[n][n];
    for (int i = 0;i < n;i++){
        for (int j = 0;j < n;j++){
            arr[i][j] = '_';
        }
    }
    int cancel = 0;
    for (int i = 0;i < q;i++){
        cin >> x[i] >> y[i];
        if (0 > x[i] || x[i] >= n || 0 > y[i] || y[i] >= n){
            cancel = 1;
        }
        arr[x[i]][y[i]] = char('A'+i);
        if (i >= 1){
            targetx[i-1] = x[i];
            targety[i-1] = y[i];
        }
    }
    if (cancel){
        cout << "Out of range";
        return 0;
    }
    for (int i = 0;i < q-1;i++){
        int skip = 0;
        int state = 0;
        int sex = 0;
        int x1 = x[i];
        int y1 = y[i];
        int x2 = targetx[i];
        int y2 = targety[i];
        if (y2 > y1){
            sex = 1;
            for (int j = 1;y1 + j != y2;j++){
                skip = 0;
                for (int k = 1;k < q;k++){
                    if (char(k+'A') == arr[x1][y1+j]){
                        skip = 1;
                    }
                }
                if (!skip){
                    arr[x1][y1+j] = '>';sex++;
                }
            }
        }
        else if (y1 > y2){
            sex = 1;
            for (int j = 1; y2 + j != y1;j++){
                skip = 0;
                for (int k = 1;k < q;k++){
                    if (char(k+'A') == arr[x1][y1-j]){
                        skip = 1;
                    }
                }
                if (!skip){
                    arr[x1][y1-j] = '<';sex++;
                }
            }
        }
        if (y2 == y1){
            state = 1;
        }
        if (x2 > x1){
            for (int j = state; x1 + j != x2;j++){
                skip = 0;
                for (int k = 1;k < q;k++){
                    if (char(k+'A') == arr[x1+j][y2]){
                        skip = 1;
                    }
                }
                if (!skip){
                    arr[x1+j][y2] = 'v';
                }
            }
        }
        else if (x2 < x1){
            for (int j = state; x2 + j != x1;j++){
                skip = 0;
                for (int k = 1;k < q;k++){
                    if (char(k+'A') == arr[x1-j][y2]){
                        skip = 1;
                    }
                }
                if (!skip){
                    arr[x1-j][y2] = '^';
                }
            }
        }
    }
    for (int i = 0;i < n;i++){
        for (int j = 0;j < n;j++){
            cout <<arr[i][j];
        }
        cout <<'\n';
    }
}