題目:有一些數字串,求出一個最小的數m,使得他們對m的餘數均不同;
分析:數論。數據較弱,枚舉m判斷即可。
說明:數據比較離散直接存儲判重即可。
#include <algorithm>
#include <iostream>
#include <cstdlib>
#include <cstring>
#include <cstdio>
using namespace std;
int SIN[500001], r[500001];
int main()
{
int n, m;
while (~scanf("%d",&n))
while (n --) {
scanf("%d",&m);
for (int i = 1; i <= m; ++ i) {
scanf("%d",&SIN[i]);
}
int ans = 1;
for (int i = 1; ; ++ i) {
int count = 0;
for (int j = 1; j <= m; ++ j) {
r[count ++] = SIN[j]%i;
}
sort(r, r+count);
int flag = 1;
for (int j = 1; j < count; ++ j) {
if (r[j] == r[j-1]) {
flag = 0;
break;
}
}
if (flag) {
ans = i;
break;
}
}
printf("%d\n",ans);
}
return 0;
}