rt,似乎是数据过水了。
本人代码:
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,c,a[1000005];
bool vis[1000005];
int pr[1000005];
bool check(int x){
for(int i=2;i<=n;i++)
if(a[i]%x!=a[1]%x)
return 0;
return 1;
}
signed main(){
pr[++c]=1;
for(int i=2;i<=1000000;i++){
if(vis[i]==0) pr[++c]=i;
for(int j=1;j<=c&&i*pr[j]<=n;j++){
vis[i*pr[j]]=1;
if(i%pr[j]==0) break;
}
}
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i];
if(n==1){
cout<<2<<" "<<a[1]-1;
return 0;
}
for(int i=1000000;i>=1;i--){
if(check(pr[i])){
cout<<(int)ceil((double)a[n]/pr[i])<<" "<<pr[i];
return 0;
}
}
return 0;
}