Submission

Status:

[PP-SSSSSSS]

Subtask/Task Score:

{0/100}

Score: 0

User: TonnamSora

Problemset: Path Finding

Language: cpp

Time: 0.002 second

Submitted On: 2025-10-10 01:53:35

#include <iostream>
using namespace std;

int main(){
    int N;
    cin >> N;
    char a[N][N];
    char ch = 'A';
    int n;
    cin >> n;
    int x[n], y[n];
    for(int i = 0; i < n; i++){
        cin >> y[i] >> x[i];
        if(x[i] > N - 1 || y[i] > N - 1){
            cout << "Out of range";
            return 0;
        }
    }
    for(int i = 0; i < N; i++){
        for(int j = 0; j < N; j++){
            a[i][j] = '_';
        }
    }
    for(int i = 0; i < n; i++){
        a[y[i]][x[i]] = char(ch + i);
    }
    int posx1, posy1, posx2, posy2, posxgoal, posygoal;
    for(int i = 0; i < n - 1; i++){
        posx1 = x[i];
        posy1 = y[i];
        posxgoal = x[i + 1];
        posygoal = y[i + 1];
        posx2 = posxgoal;
        posy2 = posygoal;
        
        if(posx2 > posx1){
            for(int j = posx1 + 1; j < posx2 + 1; j++){
                if(a[posy1][j] != char(ch + i)){
                    a[posy1][j] = '>';
                }
            }
        }
        else if(posx2 + 1 < posx1 + 1){
            for(int j = posx2; j < posx1; j++){
                if(a[posy1][j] != char(ch + i)){
                    a[posy1][j] = '<';
                }
            }
        }

        if(posy2 > posy1){
            for(int j = posy1; j < posy2; j++){
                if(a[j][posx2] != char(ch + i)){
                    a[j][posx2] = 'v';
                }
            }
        }
        else if(posy2 < posy1){
            for(int j = posy2 + 1; j < posy1 + 1; j++){
                if(a[j][posx2] != char(ch + i)){
                    a[j][posx2] = '^';
                }
            }
        }
    }
    for(int i = 0; i < N; i++){
        for(int j = 0; j < N; j++){
            cout << a[i][j];
        }
        cout << "\n";
    }
}