社区讨论
C WA6 求条
学术版参与者 3已保存回复 3
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 3 条
- 当前快照
- 1 份
- 快照标识符
- @mi0va7r5
- 此快照首次捕获于
- 2025/11/16 06:37 3 个月前
- 此快照最后确认于
- 2025/11/17 09:11 3 个月前
CPP
#include <bits/stdc++.h>
using namespace std;
#define int long long
int n;
int a[200009];
int x, y;
signed main() {
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin >> n >> x >> y;
for(int i = 1; i <= n; i++) cin >> a[i];
int d = (y - x) / __gcd(x, y - x);
for(int i = 2; i <= n; i++) {
if(a[i] % d != a[i - 1] % d) {
cout << -1 << "\n";
return 0;
}
}
int minn = 0x7fffffffffffffff, maxn = -0x7fffffffffffffff;
for(int i = 1; i <= n; i++) {
minn = min(minn, a[i] * y);
maxn = max(maxn, a[i] * x);
}
if(minn < maxn) {
cout << -1 << "\n";
return 0;
}
int r = a[1] * x % (y - x);
int k = (minn - r) / (y - x);
int t = r + k * (y - x);
if(t < maxn) {
cout << "-1";
return 0;
}
long long sum = 0;
for(int i = 1; i <= n ;i++) {
sum += a[i];
}
cout << (n * t - x * sum) / (y - x) << "\n";
return 0;
}
回复
共 3 条回复,欢迎继续交流。
正在加载回复...