首先我考场上只有 25 的特殊性质分。
对于每个点,假设第一秒种,二分什么时候长好,对所有点取最大值,洛谷民间数据就有 65 分,而云斗学院只有 5 分。
希望加强一下。
#include<bits/stdc++.h>
#define int long long
#define ll __int128
using namespace std;
int read(){
char c;bool f=0;
while(c=getchar(),c<'0'||c>'9') if(c=='-') f=1;
int x=c^'0';
while(c=getchar(),c>='0'&&c<='9') x=x*10+(c^'0');
return f?-x:x;
}
const int N=1e5,A=1e18,INF=2e18;
int n,a[N+5],b[N+5],c[N+5];
ll cmp(int u,int i){
if(c[u]<0){
int x=(b[u]-1)/(-c[u]);
if(i>x) return (ll)b[u]*x+(ll)(x+1)*x/2*c[u]+i-x;
}
return (ll)b[u]*i+(ll)(i+1)*i/2*c[u];
}
signed main(){
n=read();
int l=n,r=A;
for(int i=1;i<=n;++i){
r=max(r,a[i]=read()),b[i]=read(),c[i]=read();
int l_=0,r_=A;
while(r_>l_+1){
int mid=(l_+r_)>>1;
if(cmp(i,mid)>=a[i]) r_=mid;
else l_=mid;
}
l=max(l,r_);
}
printf("%lld",l);
}