网站源码搭建网站/app拉新项目一手渠道商
洛谷
题目描述
农夫约翰有N(1≤N≤5000)N(1 \le N \le 5000)N(1≤N≤5000)头奶牛,每头奶牛都有一个唯一的不同于其它奶牛的编号sis_isi,所有的奶牛都睡在一个有KKK个厩的谷仓中,厩的编号为000到K−1K-1K−1。每头奶牛都知道自己该睡在哪一个厩中,因为约翰教会了它们做除法,SimodKS_i \bmod KSimodK的值就是第iii头奶年所睡的厩的编号。
给出一组奶牛的编号,确定最小的K使得没有二头或二头以上的奶牛睡在同一厩中。
输入格式
第一行一个正整数NNN,第222到N+1N+1N+1行每行一个整数表示一头奶牛的编号。
输出格式
一个整数,表示要求的最小的KKK,对所有的测试数据这样的KKK是一定存在的。
样例 #1
样例输入 #1
5
4
6
9
10
13
样例输出 #1
8
提示
Si(1≤Si≤1000000)S_i(1\le S_i \le 1000000)Si(1≤Si≤1000000)
#include <bits/stdc++.h>
#define LL long long
using namespace std;
const int maxn = 1e6 + 10;
const int mod = 1e9 + 7;
const int INF = 1e9 + 10;
const int N = 1000000;
int n;
int a[N];
int b[N];
int main(){cin >> n;for(int i = 1;i <= n;i ++)cin >> a[i];int res = 0;for(int i = 1;i <= n;i ++){for(int j = i + 1;j <= n;j ++ ){b[abs(a[i] - a[j])] = 1;}}for(int i = 1;i <= N;i ++){bool flag = 1;for(int j = i;j <= N;j += i){if(b[j] == 1){flag = 0;break;}}if(flag){cout << i << endl;break;}}system("pause");return 0;
}