样例过不去但是测试点AC了


#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1000010;
inline int read(){
int f(1),x(0);
char ch=getchar();
for(;!isdigit(ch);ch=getchar()) if(ch=='-') f=-1;
for(;isdigit(ch);ch=getchar()) x=(x<<1)+(x<<3)+(ch^48);
return f*x;
}
inline int write(int x){
if(x<0) putchar('-'),x=-x;
if(x>9) write(x/10);
putchar(x%10+'0');
return 1;
}
int x,y;
inline int exgcd(int a,int b){
if(!b){
x=1,y=0;
return a;
}
int d=exgcd(b,a%b);
int z=x;
x=y;
y=z-y*(a/b);
return d;
}
int n,m,C[N],P[N],L[N],start;
inline bool testify(int b){
for(register int i=1;i<=n;i++){
for(register int j=i+1;j<=n;j++){//ナナチミラ鮗マ
x=y=0;
int a=P[j]-P[i],c=C[i]-C[j];
int g=exgcd(a,b);
if(c%g) continue;
if(a<0){
a=-a,b=-b;
}
int ans=(((x*c/g)%(b/g)+(b/g))%(b/g));
if(ans<=min(L[i],L[j])) return false;
}
}
return true;
}
main(void){//
n=read();
for(register int i=1;i<=n;i++){
C[i]=read(),P[i]=read(),L[i]=read();
start=max(start,C[i]);
}
for(register int i=start;;i++)
if(testify(i))
return write(i)&&0;
}
求调教

