Giải bài ntucoder LINE - Trò chơi line

Thảo luận trong 'Khác' bắt đầu bởi nguyen minh duc, 8 Tháng sáu 2023.

  1. nguyen minh duc

    Bài viết:
    28
    Link bài:

    Thuật toán:


    • Ta dùng thuật toán quay lui để lan đường đi từ viên bi cần di chuyển ra khắp bản đồ. Nếu thuật toán lan được đến viên bi cần tìm, ta sẽ in "YES", không thì in "NO".

    Code:

    Mã:
    #include <bits/stdc++.h>
    using namespace std;
    
    int a[11][11], n, sy, dy, sx, dx;
    
    void doit(int i, int j){
        if (a[j] == 0){
            a[j] = 2;
            doit(i-1, j);
            doit(i+1, j);
            doit(i, j-1);
            doit(i, j+1);
        }
    }
    
    int main(){
        ios_base::sync_with_stdio(0);
        cin.tie(0); cout.tie(0);
        //freopen("line.inp", "r", stdin);
        //freopen("line.out", "w", stdout);
        cin >> n >> sy >> sx >> dy >> dx;
        for (int i = 0; i <= n+1; i++) a[0] = a[0] = a[n+1] = a[n+1] = -1;
        for (int i = 1; i <= n; i++)
            for (int j = 1; j <= n; j++)
                cin >> a[j];
        a[sy][sx] = 0;
        doit(sy, sx);
        if (a[dy][dx] == 2) cout << "YES"; else cout << "NO";
        
        /*for (int i = 0; i <= n+1; i++){
            cout << endl;
            for (int j = 0; j <= n+1; j++)
                cout << a[j] << " ";
        }*/
        
        return 0;
    }
     
Trả lời qua Facebook
Đang tải...