题解:B3830 [NICA #2] 回溯的雨
简要题意
给你一个数
思路分析
实际上,如果我们忽略原式中的
换言之,我们可以得到
因此,我们可以以此为依据判断是否有解。
接下来的问题是
这个其实非常好办。既然他要求这些数列是正整数序列,那我就让
代码如下:
#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
#define int long long
int n, x, c[100001];
signed main() {
ios::sync_with_stdio(0);
cin >> n >> x;
for (register int i = 1; i <= n; ++i) cin >> c[i];
sort(c + 1, c + n + 1);
if (c[1] < x) {
cout << "-1\n";
return 0;
}
for (register int i = 2; i <= n; ++i) {
c[i] -= c[1];
if (c[i] % x != 0) {
cout << "-1\n";
return 0;
}
}
cout << c[1] - x << endl;
return 0;
}