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; }