Submission #855821

#TimeUsernameProblemLanguageResultExecution timeMemory
855821vjudge1수열 (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...