제출 #1076316

#제출 시각아이디문제언어결과실행 시간메모리
1076316speedcode수열 (APIO14_sequence)C++17
0 / 100
2 ms348 KiB
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll MOD = 1000000007;

ll dp1[100001][201];
int dp2[100001][201];
int n;
int Dat[9];
ll f(int m, int k){
    if(k+1 > n + 1 - m) return 0;
    if(k == 0) return 0;
    if(dp1[m][k] != -1) return dp1[m][k];
    ll res = 0;
    for(int i = m+1; i <= n; i++){
        ll r = (Dat[i-1] - Dat[m-1])*(Dat[n] - Dat[i-1]) + f(i, k-1);
        if(r > res){
            res = r;
            dp2[m][k] = i;
        }
    }
    dp1[m][k] = res;
    return res;
}

void solve(){
    int k;
    cin >> n >> k;
    for(int i = 1; i <= n; i++){
        for(int j = 0; j <= k; j++){
            dp1[i][j] = -1;
            dp2[i][j] = -1;
        }
    }
    Dat[0] = 0;
    for(int i = 1; i <= n; i++){
        cin >> Dat[i];
        Dat[i] += Dat[i-1];
    }

    cout << f(1, k) << '\n';
    int key = 1;
    while(k--){
        key = dp2[key][k+1];
        cout << key-1 << ' ';
    }
}
 
int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
#ifndef ONLINE_JUDGE
    freopen("input.txt","r",stdin);
    freopen("output.txt","w",stdout);
#endif
    solve();
}

컴파일 시 표준 에러 (stderr) 메시지

sequence.cpp: In function 'int main()':
sequence.cpp:54:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   54 |     freopen("input.txt","r",stdin);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
sequence.cpp:55:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   55 |     freopen("output.txt","w",stdout);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
#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...