| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1335513 | Warinchai | Bigger segments (IZhO19_segments) | C++20 | 93 ms | 43428 KiB |
#include<bits/stdc++.h>
#define int long long
using namespace std;
int ar[500005];
int mn[500005];
int inf=1e18;
int rans[500005];
int sum[500005];
vector<pair<int,int>>add[500005];
int32_t main(){
ios_base::sync_with_stdio(false);
cin.tie(0);
int n;cin>>n;
for(int i=1;i<=n;i++){
cin>>ar[i];
sum[i]=sum[i-1]+ar[i];
mn[i]=inf;
}
pair<int,int>temp={0,0};
for(int i=1;i<=n;i++){
for(auto x:add[i])temp=max(temp,x);
mn[i]=sum[i]-sum[temp.second];
rans[i]=temp.first+1;
int st=i+1,en=n,id=n+1;
while(st<=en){
int m=(st+en)/2;
if(sum[m]-sum[i]>=mn[i]){
id=m;
en=m-1;
}else{
st=m+1;
}
}
add[id].push_back({rans[i],i});
//cerr<<"i:"<<i<<" "<<mn[i]<<" "<<rans[i]<<" "<<id<<"\n";
}
cout<<rans[n];
}| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
