Submission #113303

#TimeUsernameProblemLanguageResultExecution timeMemory
113303Runtime_error_수열 (APIO14_sequence)C++14
0 / 100
9 ms3584 KiB
#include <bits/stdc++.h> #define ll long long using namespace std; const ll inf=1e3+9,K=209; ll n,k,ans,idx; ll pre[inf],a[inf]; pair<ll,ll> dp[inf][K]; vector<ll> split; ll sum(ll x,ll y){ return pre[y]-pre[x]; } int main(){ cin>>n>>k; for(ll i=1;i<=n;i++) cin>>a[i],pre[i]=pre[i-1]+a[i]; for(ll j=1;j<=k;j++) for(ll i=1;i<=n;i++) for(ll z=0;z<i;z++) dp[i][j]=max(dp[i][j],make_pair(dp[z][j-1].first+sum(z,i)*sum(i,n),z)); for(ll j=1;j<=k;j++){ for(ll i=1;i<=n;i++) cout<<dp[i][j].first<<" "<<dp[i][j].second<<" "; cout<<endl; } for(ll i=1;i<=n;i++) if(ans<dp[i][k].first) ans=dp[i][k].first,idx=i; split.push_back(idx); for(ll j=k;j>1;j--) idx=dp[idx][j].second,split.push_back(idx); reverse(split.begin(),split.end()); cout<<ans<<endl; for(auto o:split) cout<<o<<" "; cout<<endl; }
#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...