暴力枚举,超时80分
#include <iostream> using namespace std; int a[5001], n; int main() { int i = 1, j, t; while (1) { for (j = 0; j < n; j++) { t = a[j] % i; num[t]++; if (num[t] > 1) break; if (j == n - 1) { cout << i << endl; return 0; } } for (int k = 0; k < i; k++) num[k] = 0; i++; } } //吐槽洛谷的水数据 #include <iostream> #include <cmath> using namespace std; int a[5001], n; int via[1000000]; int biao[25000000]; int main() { cin >> n; for (int i = 0; i < n; i++) cin >> a[i]; int t, m = 0; for (int i = 0; i < n; i++) for (int j = 0; j < n; j++) { t = abs(a[i] - a[j]); if (t != 0) { biao[m] = t; m++; via[t]++; } } int i = n; while(1) { if (via[i]) { i++; continue; } int j; for (j = 0; j < m; j++)//排除因数 { if (biao[j] % i == 0) break; } if (j == m) { cout << i << endl; return 0; } i++; } }