答案为 使用辗转相除法/更相减损术的多维形式,反正就是的性质,从最后一项开始,减去前一项,得到上述等于 这相当于是满足最大的值,我们找出满足后面个条件,即整除所有差分的值,即,这就是答案,因为我们总能调整使得被刚才得出的值整除

#include <iostream>
#include <numeric>
#include <vector>
using namespace std;

void solve(){
    int n;
    cin >> n;
    vector<int> a(n,0);
    for(auto&v : a) cin >> v;

    int ans = abs(a[1]-a[0]);
    for(int i=2;i<n;i++){
        ans=gcd(ans,a[i]-a[i-1]);
    }
    // g|(a[0]+k)

    cout << ans << ' ' << ((ans==1)?0:((a[0]/ans+1)*ans-a[0]))<<'\n';

}

int main() {
    solve();
}
// 64 位输出请用 printf("%lld")