Submission #949480

#TimeUsernameProblemLanguageResultExecution timeMemory
949480PM1Split the sequence (APIO14_sequence)C++17
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long const int mxn=1e5+5,mxk=205; int n,k,aa[mxn]; int par[mxn][mxk]; ll dp[mxn][2],pre[mxn],ans; deque<int>cht; bool comp(ll x,ll y,ll w,bool z){ ll xx=(-pre[x])*w+dp[x][z],yy=(-pre[y])*w+dp[y][z]; //cout<<x<<" "<<y<<" "<<xx<<" "<<yy<<" "<<'\n'; return xx>yy; } int main(){ cin>>n>>k; for(int i=1;i<=n;i++){ cin>>aa[i]; pre[i]=pre[i-1]+aa[i]; } for(int i=1;i<=n;i++){ dp[i][1]=pre[i]*(pre[n]-pre[i]); } for(int j=2;j<=k;j++){ bool y=j&1; cht.push_back(j-1); for(int i=j;i<n;i++){ //ax+b ll x=pre[n]-pre[i]; while(cht.size()>1 && !comp(cht[0],cht[1],x,y^1))cht.pop_front(); ll a=-pre[cht[0]],b=dp[cht[0]][y^1]; dp[i][y]=a*x+b+pre[i]*x; par[i][j]=cht[0]; while(cht.size() && !comp(cht.back(),ix,y^1))cht.pop_back(); cht.push_back(i); }//cout<<'\n'; cht.clear(); } for(int i=1;i<n;i++){ int y=k&1; if(dp[i][y]>=dp[ans][y])ans=i; } cout<<dp[ans][k&1]<<'\n'; vector<int>v; while(ans!=0){ v.push_back(ans); ans=par[ans][k]; k--; } reverse(v.begin(),v.end()); for(auto i:v){ cout<<i<<" "; } return 0; }

Compilation message (stderr)

sequence.cpp: In function 'int main()':
sequence.cpp:33:41: error: 'ix' was not declared in this scope; did you mean 'x'?
   33 |    while(cht.size() && !comp(cht.back(),ix,y^1))cht.pop_back();
      |                                         ^~
      |                                         x