

Link bài:
Thuật toán:
Code:
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[i];
sort(a+1, a+1+n);
for (int i = 2; i <= n; i++) if (a[i] - a[i-1] < ans) ans = a[i] - a[i-1];
cout << ans;
return 0;
}