Submission #855821

#TimeUsernameProblemLanguageResultExecution timeMemory
855821vjudge1Split the sequence (APIO14_sequence)C++17
0 / 100
145 ms2388 KiB
/// tree bends in youth /// 1.10.2023 /// success is doing same thing in every single day!!! #include <bits/stdc++.h> #define ll long long #define pb push_back #define all(x) x.begin(), x.end() #define F first #define S second using namespace std; const ll N =1e5 + 5; const ll NN = 2e5; const ll INF = 1e9; const ll MOD = 1e9 + 7; int a[N]; int dp[1005][205]; int pre[1005],suf[1005]; void solve(){ int n,k; cin >> n >> k; for(int i = 1;i <= n;i++){ cin >> a[i]; pre[i] = pre[i - 1] + a[i]; } for(int i=n;i>0;i--){ suf[i]=suf[i+1]+a[i]; if(i < n)dp[i][1] = pre[i] * suf[i + 1]; } int mx = 0; for(int i = 2;i <= k;i++){ for(int j = i;j <= n;j++){ for(int g = 1;g < j;g++){ int z = pre[j] - pre[g]; int x = pre[n] - pre[j]; dp[j][i] = max(dp[j][i],dp[g][i - 1] + (z * x)); mx = max(mx,dp[j][i]); } } } cout << mx << '\n'; int i =k,l = 0; for(int j = 1;j<=n;j++){ if(dp[j][i] == mx){ l = j; } } i--; cout << l << ' '; while(i > 0){ for(int j = l - 1;j >= 1;j--){ int z = pre[l] - pre[j],x = pre[n] - pre[l]; if((z * x) + dp[j][i] == dp[l][i + 1]){ l = j; break; } } cout << l << ' '; i--; } } main (){ ios_base::sync_with_stdio(0); cin.tie(0); // freopen("input.txt","r",stdin); // freopen("output.txt","w",stdout); ll abd= 1; //cin >> abd; for(ll i = 1;i <= abd;i++){ // cout << "Case " << i << ": "; solve(); } }

Compilation message (stderr)

sequence.cpp:61:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   61 | main (){
      | ^~~~
#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...