社区讨论

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 条回复,欢迎继续交流。

正在加载回复...