Giải bài ntucoder NHGA - Nhà gần nhất

Discussion in 'Khác' started by nguyen minh duc, May 27, 2023.

  1. nguyen minh duc

    Messages:
    28
    Link bài:

    Thuật toán:

    • Do hai ngôi nhà gần nhau nhất chắc chắn sẽ nằm cạnh nhau. Ta sẽ sắp xếp các ngôi nhà theo thứ tựtừ nhỏ đến lớn để dễ dàng tính toán.
    • Khoảng cách giữa ngôi nhà thứ i và ngôi nhà thứ j tới đầu đường là ai và aj => Khoảng cách giữa hai ngôi nhà i và j là ai-aj (i > j).
    • Ta dùng biến ans để lưu trữ giá trị ai-aj nhỏ nhất tìm được.

    Code:

    Code:
    #include <bits/stdc++.h>
    using namespace std;
    
    int n, ans = 1000000000, a[100007];
    
    int main(){
        ios_base::sync_with_stdio(0);
        cin.tie(0); cout.tie(0);
        //freopen("nhga.inp", "r", stdin);
        //freopen("nhga.out", "w", stdout);
        cin >> n;
        for (int i = 1; i <= n; i++) cin >> a;
        sort(a+1, a+1+n);
        for (int i = 2; i <= n; i++) if (a - a[i-1] < ans) ans = a - a[i-1];
        cout << ans;
        
        return 0;
    }
     
Trả lời qua Facebook
Loading...