Submission #1160064

#TimeUTC-0UsernameProblemLanguageResultExecution timeMemory
11600642025-03-01 17:30:19haruki291saSplit the sequence (APIO14_sequence)C++17
100 / 100
381 ms90076 KiB
#include "bits/stdc++.h"
using namespace std;
using ll=long long;
ll D[100003][2],S[100003];
int dq[100003],anc[100003][222];
bool vis[100003];
int n,k;
bool g1(int a,int b,int c){
return (D[b][0]-D[a][0])>=(S[b]-S[a])*(S[n]-S[c]);
}
bool g2(int a,int b,int c){
return (D[b][0]-D[a][0])*(S[c]-S[b])<=(D[c][0]-D[b][0])*(S[b]-S[a]);
}
int main(){
//freopen("File","r",stdin);
ios_base::sync_with_stdio(false);cin.tie(NULL);
cin>>n>>k;
for(int i=1;i<=n;i++){
cin>>S[i];
S[i]+=S[i-1];
}
int cnt=1,pos=1;
for(int i=1;i<=k;i++){
dq[cnt++]=0;
for(int j=1;j<=n;j++){
while(cnt-pos>1&&g1(dq[pos],dq[pos+1],j))pos++;
int idx=dq[pos];
D[j][1]=D[idx][0]+(S[j]-S[idx])*(S[n]-S[j]);
anc[j][i]=idx;
//dq[++cnt]=j;
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...