Submission #1167412

#TimeUsernameProblemLanguageResultExecution timeMemory
1167412AlmontherDivide and conquer (IZhO14_divide)C++20
48 / 100
1093 ms1864 KiB
#include<bits/stdc++.h>

using namespace std;

#define ll long long
#define co cout<<
// stuff
struct smth{
    ll last,ans,extra;
};
void solve(){
    ll n;
    cin>>n;
    smth ans[n+5];
    ll cords[n+5];
    ll mx=0;
    for(int i=0;i<n;i++){
        cin>>cords[i]>>ans[i].ans>>ans[i].extra;
        ll sum=0,sum1=0;
        for(int j=i;j>=0;j--){
            sum+=ans[j].ans;
            sum1+=ans[j].extra;
            // co i<<' '<<j<<' '<<sum<<' '<<sum1<<'\n';
            if(sum1>=cords[i]-cords[j]) mx=max(mx,sum);
        }
        continue;
        ans[i].last=i;
        while(ans[i].last!=0){
            if(cords[ans[i].last]-cords[ans[i].last-1]<=ans[i].extra+ans[ans[i].last-1].extra){
                ans[i].extra-=cords[ans[i].last]-cords[ans[i].last-1];
                ans[i].ans+=ans[ans[i].last-1].ans;
                ans[i].extra+=ans[ans[i].last-1].extra;
                ans[i].last=ans[ans[i].last-1].last;
            }
            else break;
        }
    }
    co mx;
}
int main(){
    ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
    int _=1;
    // cin>>_;
    while(_--) solve();
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...