2 条题解

  • 1
    @ 2025-11-1 18:04:05
    #include <iostream>
    #include <vector>
    #include <cmath>
    using namespace std;
    
    long long gcd(long long a, long long b) {
        a = abs(a);
        b = abs(b);
        while (b != 0) {
            long long temp = a % b;
            a = b;
            b = temp;
        }
        return a;
    }
    
    int main() {
        int n, Q;
        cin >> n >> Q;
        vector<long long> a(n);
        for (int i = 0; i < n; ++i) {
            cin >> a[i];
        }
        
        if (n == 1) {
            for (int i = 1; i <= Q; ++i) {
                cout << a[0] + i << endl;
            }
        } else {
            long long a0 = a[0];
            long long g = 0;
            for (int j = 1; j < n; ++j) {
                long long d = a[j] - a0;
                g = gcd(g, d);
            }
            for (int i = 1; i <= Q; ++i) {
                long long x = a0 + i;
                cout << gcd(x, g) << endl;
            }
        }
        
        return 0;
    }
    
    

    信息

    ID
    3339
    时间
    1000ms
    内存
    256MiB
    难度
    7
    标签
    递交数
    57
    已通过
    13
    上传者