# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1167412 | Almonther | Divide and conquer (IZhO14_divide) | C++20 | 1093 ms | 1864 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];
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |