# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
602632 | veehz | Uplifting Excursion (BOI22_vault) | C++17 | 5064 ms | 4180 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>
using namespace std;
typedef long long ll;
ll negativeOne = -1;
ll m, l;
int maxi, mini;
vector<ll> a, x;
inline auto& get(int i) { return a[i + m]; }
inline auto& getx(int i) {
if (i < mini || i > maxi) return negativeOne;
return x[i - mini];
}
int main() {
cin >> m >> l;
ll ans = 0;
a.resize(2 * m + 1);
for (int i = 0; i < 2 * m + 1; i++) cin >> a[i];
maxi = mini = 0;
for (int i = 1; i <= m; i++) {
maxi += get(i) * i;
mini -= get(-i) * i;
}
x.assign(maxi - mini + 1, negativeOne);
getx(0) = get(0);
for (int i = 1; i <= m; i++) {
for (int j = maxi; j >= mini; j--) {
for (int k = 1; k <= get(i); k++) {
if (getx(j - k * i) != negativeOne) {
getx(j) = max(getx(j), getx(j - k * i) + k);
}
}
}
}
for (int i = 1; i <= m; i++) {
for (int j = mini; j <= maxi; j++) {
for (int k = 1; k <= get(-i); k++) {
if (getx(j + k*i) != negativeOne) {
getx(j) = max(getx(j), getx(j + k*i) + k);
}
}
}
}
if(getx(l) != negativeOne) cout << getx(l) << endl;
else cout << "impossible" << endl;
}
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... |
# | 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... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |