# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
869868 | quandlm | Holding (COCI20_holding) | C++14 | 29 ms | 32092 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
#define file(name) if (fopen (name".inp", "r")) { freopen (name".inp", "r", stdin); freopen (name".out", "w", stdout); }
#define ll long long
#define FOR(i, a, b) for (int i = (a); i <= (b); ++i)
#define REP(i, a, b) for (int i = (a); i >= (b); --i)
#define pi pair<int,int>
#define ple tuple<int,int,int>
#define fi first
#define se second
#define ii make_pair
#define isz(a) ((int)a.size())
#define ALL(a) a.begin(), a.end()
using namespace std;
const int N = 1e6 + 10;
const int mx = 3000;
int n, l, r, K;
int a[N], sum = 0;
int pref[105][105][3005];
int suf[105][105][3005];
void minimize (int &a, int b) {
a = min(a, b);
}
void maximize (int &a, int b) {
a = max(a, b);
}
int main () {
file("debt");
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
cin >> n >> l >> r >> K;
K=min(K, mx);
FOR(i,1,n) cin >> a[i];
FOR(i,l,r) sum+=a[i];
for(int i=l; i<=r; ++i) {
for(int j=1; j<=l-1; ++j) {
for(int k=0;k<=K;++k) {
maximize(pref[i][j][k], pref[i-1][j][k]);
maximize(pref[i][j][k], pref[i][j-1][k]);
int cost=i-j;
if (k >= cost) {
maximize(pref[i][j][k], pref[i-1][j-1][k-cost]+a[i]-a[j]);
}
}
}
}
for(int i=r; i>=l;--i) {
for(int j=n; j>=r+1; --j) {
for (int k=0;k<=K;++k) {
maximize(suf[i][j][k], suf[i+1][j][k]);
maximize(suf[i][j][k], suf[i][j+1][k]);
int cost=j-i;
if(k >= cost) {
maximize(suf[i][j][k], suf[i+1][j+1][k-cost]+a[i]-a[j]);
}
}
}
}
int res = 0;
for (int i = l-1; i <= r; ++i) {
for (int j = 0; j <= K; ++j) {
maximize(res, pref[i][l-1][j] + suf[i+1][r+1][K-j]);
}
}
cout << sum - res << '\n';
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |