Submission #102970

#TimeUsernameProblemLanguageResultExecution timeMemory
102970brcodeDivide and conquer (IZhO14_divide)C++14
17 / 100
144 ms5728 KiB
#include <iostream>

using namespace std;
const long long MAXN = 1e5+5;
long long pos[MAXN];
long long d[MAXN];
long long g[MAXN];
int main(){
    long long n;
    cin>>n;
    for(long long i=1;i<=n;i++){
        cin>>pos[i]>>g[i]>>d[i];
    }
    long long l = 1;
    long long r = 1;
    long long ans = g[1];
    long long holdlen = d[1];
    long long holdgold = g[1];
    
    while(l<=r && (r<=n)){
       // cout<<holdgold<<" "<<holdlen<<" "<<l<<" "<<r<<endl;
        if(l == r){
            ans = max(ans,g[r]);
            r++;
            holdlen+=d[r];
            holdgold+=g[r];
            continue;
        }
        if(pos[r]-pos[l]>holdlen){
            
            holdlen-=d[l];
            holdgold-=g[l];
            l++;
            
            continue;
        }else{
            ans = max(ans,holdgold);
            r++;
            holdlen+=d[r];
            holdgold+=g[r];
        }
    }
    ans = max(ans,holdgold);
    cout<<ans<<endl;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...