Submission

Status:

[PPPPPPPPPP]

Subtask/Task Score:

{100/100}

Score: 100

User: Apimuk

Problemset: Path Finding

Language: cpp

Time: 0.003 second

Submitted On: 2025-10-14 16:11:02

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

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int n ;
    cin >> n;
    vector<vector<char>> a(n,vector<char> (n,'_'));
    int m;
    cin >> m;
    int cnt =0;
    int rr, rc;
    int isout = 0;
    while(m > 0){
        int dr , dc;
        cin >> dr >> dc;
        if(dr >= n || dc >= n || dc<0 || dr<0){
            cout << "Out of range" ;
            isout = 1;
        }
        if(cnt == 0 && isout!= 1){
            rr = dr;
            rc = dc;
            a[rr][rc] = 'A';
            cnt ++ ;
            m--;
            continue;
        }
        while(rc > dc && isout !=1){
            rc--;
            a[rr][rc] = '<';
        }
        while(rc < dc && isout !=1){
            rc++;
            a[rr][rc] = '>';
           
        }
        while(rr > dr && isout !=1){
            rr--;
            a[rr][rc] = '^';
            if(a[rr+1][rc] == '<' || a[rr+1][rc] == '>' || a[rr+1][rc] == 'v'){
                a[rr+1][rc] = '^';
            }
            
        }
        while(rr < dr && isout!=1){
            rr++;
            a[rr][rc] = 'v';
            if(a[rr-1][rc] == '<' || a[rr-1][rc] == '>' || a[rr-1][rc] == '^'){
                a[rr-1][rc] = 'v';
            }
            
        }
        if(isout!=1){
            
            a[dr][dc] = 'A' + cnt;
            cnt++;
        }
        m--;
    }
    if(isout == 1){
        return 0;
    }
    for(int i = 0;  i< n ; i++){
        for(int j = 0 ; j< n ; j++){
            cout << a[i][j] ;
        }
        cout << endl;
    }
}