求 hack
查看原帖
求 hack
1330274
stringdp100005楼主2025/1/21 16:25

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;
}
2025/1/21 16:25
加载中...