Submission #849892

#TimeUsernameProblemLanguageResultExecution timeMemory
849892MinaRagy06Uplifting Excursion (BOI22_vault)C++17
0 / 100
5090 ms95800 KiB
#include <bits/stdc++.h> using namespace std; typedef int64_t ll; int m; ll l, a[605]; map<pair<int, ll>, ll> mem; ll solve(int i, ll s) { if (i == 2 * m + 1) { if (s == l) return 0; return -1e18; } if (mem.find({i, s}) != mem.end()) { return mem[make_pair(i, s)]; } ll ans = -1e18; for (int j = 0; j <= a[i]; j++) { ans = max(ans, j + solve(i + 1, s + j * (i - m))); } return mem[make_pair(i, s)] = ans; } int main() { ios_base::sync_with_stdio(0), cin.tie(0); cin >> m >> l; for (int i = 0; i < 2 * m + 1; i++) { cin >> a[i]; } ll ans = solve(0, 0); if (ans < 0) { cout << "impossible\n"; } else { cout << ans << '\n'; } return 0; }
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...