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

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

  1. nguyen minh duc

    Bài viết:
    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:

    Mã:
    #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;
    }
     
  2. Đăng ký Binance
Trả lời qua Facebook
Đang tải...