Submission #849898

#TimeUsernameProblemLanguageResultExecution timeMemory
849898MinaRagy06Uplifting Excursion (BOI22_vault)C++17
0 / 100
5033 ms524288 KiB
#include <bits/stdc++.h> using namespace std; typedef int64_t ll; struct chash { const ll R = chrono::steady_clock::now().time_since_epoch().count(); const ll C = ll(4e18 * acos(0)) + 73; ll operator()(ll x) { return __builtin_bswap64((x^R) * C); } }; int m; ll l, a[605]; unordered_map<ll, ll> mem[605]; ll solve(int i, ll s) { if (i == 2 * m + 1) { if (s == l) return 0; return -1e18; } if (mem[i].find(s) != mem[i].end()) { return mem[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[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...