【悬赏3关注】20pts求条
查看原帖
【悬赏3关注】20pts求条
1198296
封禁用户楼主2024/7/20 22:23

不要看我提交记录,因为这是我小号

#include<bits/stdc++.h>
using namespace std;
const int N=20;
int n;
int cc[N],p[N],l[N];
int exgcd(int a,int b,int &x,int &y){
	if(b==0){
		x=1,y=0;
		return a;
	}
	int d,tmp;
	d=exgcd(b,a%b,x,y);
	tmp=x;
	x=y;
	y=tmp-a/b*x;
	return d;
}
int check(int M){
	for(int i=1;i<=n;++i){
		for(int j=i+1;j<=n;++j){
			int a=p[i]-p[j],b=M,c=cc[j]-cc[i],x,y;
			int d=exgcd(a,b,x,y);
			if(c%d) continue;
			int sx=x*c/d,dx=b/d;
			int ll=(int)ceil((-sx+1)*1.0/dx);
			if(sx+ll*dx<=min(l[i],l[j])) return 0;
		}
	}
	return 1;
}
signed main(){
	cin>>n;
	int maxx=0;
	for(int i=1;i<=n;++i){
		cin>>cc[i]>>p[i]>>l[i];
		maxx=max(maxx,cc[i]);
	}
	for(int i=maxx;;++i){
		if(check(i)){
			cout<<i<<endl;
			return 0;
		}
	}
	return 0;
}
2024/7/20 22:23
加载中...