제출 #498403

#제출 시각아이디문제언어결과실행 시간메모리
498403Ziel수열 (APIO14_sequence)C++17
50 / 100
2085 ms6164 KiB
/**
 * LES GREATEABLES BRO TEAM
**/

#include <bits/stdc++.h>

using namespace std;

using ll = long long;
#define sz(x) (int)x.size()
const bool FLAG = false;
void setIO(const string &f = "");

#define int ll
const ll INF = 1e17+456;
int n, k;
ll dp[210][100013], a[100013], p[100013], last[210][100013];
bool was[210][100013];

ll rec(int kol, int R) {
	if (kol >= k) {
		return 0;
	}
	if (was[kol][R]) {
		return dp[kol][R];
	}
	was[kol][R] = 1;
	ll res = -INF;
	for (int i = R - 1; i >= 1; i--) {
		ll cur = rec(kol + 1, i);
		if (cur == -INF)
			continue;
		if (res < p[R] * p[i] - p[i] * p[i] + cur) {
			res = p[R] * p[i] - p[i] * p[i] + cur;
			last[kol][R] = i;
		}
	}
	return dp[kol][R] = res;
}

void solve() {
    cin >> n >> k;
	for (int i = 1; i <= n; i++) {
		cin >> a[i];
		p[i] = p[i - 1] + a[i];
	}
	cout << rec(0, n) << '\n';
	int R = n;
	for (int i = 0; i < k; i++) {
		cout << last[i][R] << ' ';
		R = last[i][R];
	}
}

signed main() {
    setIO();
    
    int tt = 1;
    if (FLAG) {
    	cin >> tt;
    }
    while (tt--) {
    	solve();
    }
    
    return 0;
}

void setIO(const string &f) {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    if (fopen((f + ".in").c_str(), "r")) {
        freopen((f + ".in").c_str(), "r", stdin);
        freopen((f + ".out").c_str(), "w", stdout);
    }
}

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

sequence.cpp: In function 'void setIO(const string&)':
sequence.cpp:73:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   73 |         freopen((f + ".in").c_str(), "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sequence.cpp:74:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   74 |         freopen((f + ".out").c_str(), "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...