Em có bài tập tìm khoảng cách giữa 2 nhà gần nhất. Tuy nhiên có một test case sai, em nghĩ là do out of bounds nhưng không biết sai ở đâu.
Đầu bài:
Input:
- n (số ngôi nhà, 2<=n<=10^5)
- n dòng sau là vị trí căn nhà (0<= ai<= 10^9)
Output: số nguyên duy nhất cho biết khoảng cách giữa hai căn nhà gần nhau nhất
VD:
Output:
3
3 1 6
Input: 2
Code của em:
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define f0(i,n) for(int i=0;i<n;++i)
#define f1(i,n) for(int i=1;i<=n;++i)
#define MOD (ll)(1e9 + 7)
int main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int n,minn=MOD,d=0;
cin >> n;
int a[n];
f0(i,n)cin >> a[i];
sort(a,a+n);
f0(i,n-1){
if (a[i+1]-a[i]<minn)
minn=a[i+1]-a[i];
}
cout << minn;
return 0;
}
Test case sai:
1st token differs - expected: ‘96’, found: ‘1000000007’
Chỗ sai này thì có lúc là 2147483647,1677148948, 483193061, 1000000007(minn ban đầu).
Mong các bác giúp em. Em cảm ơn.



khi nào được mình bảo nhé


(một cách tường minh thì khi chắc chắn có ít nhất 1 phần tử, ta luôn khởi tạo giá trị nhỏ nhất chính là giá trị đầu tiên).
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?