Submission

Status:

[PPPPPPPPPP]

Subtask/Task Score:

{100/100}

Score: 100

User: TonnamSora

Problemset: Path Finding

Language: cpp

Time: 0.003 second

Submitted On: 2025-10-10 08:50:48

#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];
    }
    for(int i = 0; i < n; i++){
        if(x[i] > N - 1 || y[i] > N - 1 || x[i] < 0 || y[i] < 0){
            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++){
        
    }
    int posx1, posy1, posx2, posy2, posxgoal, posygoal;
    for(int i = 0; i < n - 1; i++){
        a[y[i]][x[i]] = char(ch + i);
        if(i == n - 2){
            a[y[i + 1]][x[i + 1]] = char(ch + i + 1);
        }
        posx1 = x[i];
        posy1 = y[i];
        posxgoal = x[i + 1];
        posygoal = y[i + 1];
        posx2 = posxgoal;
        posy2 = posygoal;
        
        if(posx2 > posx1){
            if(posy1 == posy2){
                for(int j = posx1 + 1; j < posx2; j++){
                    int m = 0;
                    /*for(int k = 0; k < 26; k++){
                        if(a[posy1][j] == char(ch + k)){
                            m++;
                        }
                    }*/
                    //if(m == 0){
                        a[posy1][j] = '>';
                    //}
                }
            }
            else{
                for(int j = posx1 + 1; j < posx2 + 1; j++){
                    int m = 0;
                    /*for(int k = 0; k < 26; k++){
                        if(a[posy1][j] == char(ch + k)){
                            m++;
                        }
                    }*/
                    //if(m == 0){
                        a[posy1][j] = '>';
                    //}
                }
            }
        }
        else if(posx2 < posx1){
            if(posy1 == posy2){
                for(int j = posx2 + 1; j < posx1; j++){
                    int m = 0;
                    /*for(int k = 0; k < 26; k++){
                        if(a[posy1][j] == char(ch + k)){
                            m++;
                        }
                    }*/
                    //if(m == 0){
                        a[posy1][j] = '<';
                    //}
                }
            }
            else{
                for(int j = posx2; j < posx1; j++){
                    int m = 0;
                    /*for(int k = 0; k < 26; k++){
                        if(a[posy1][j] == char(ch + k)){
                            m++;
                        }
                    }*/
                    //if(m == 0){
                        a[posy1][j] = '<';
                    //}
                }
            }
        }

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