# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
577770 | patrikpavic2 | Uplifting Excursion (BOI22_vault) | C++17 | 1 ms | 212 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 <cstdio>
#include <algorithm>
using namespace std;
typedef long long ll;
const int M = 32;
const int INF = 0x3f3f3f3f;
int m;
ll L, A[M], kol, B[M];
int dp[M * M];
ll greedy(ll cur){
if(cur < 0) return -1;
ll ret = 0;
for(int i = 1;i <= m;i++){
ll uz = min(B[i], cur / i);
cur -= uz * i; ret += uz;
}
return cur == 0 ? ret : -1;
}
int main(){
scanf("%d%lld", &m, &L);
for(int i = m;i >= 1;i--){
ll x; scanf("%lld", &x);
// A[i] += x; L += x * i;
}
ll bla; scanf("%lld", &bla);
for(int i = 1;i <= m;i++){
ll x; scanf("%lld", &x);
A[i] += x;
}
for(int i = 1;i <= m;i++){
B[i] = A[i] - min(A[i], (ll)M);
A[i] -= B[i];
}
for(int i = 1;i < M * M;i++)
dp[i] = -INF;
for(int i = 1;i <= m;i++){
for(int j = 0;j < A[i];j++){
for(int k = M * M - 1;k >= i;k--)
dp[k] = max(dp[k], 1 + dp[k - i]);
}
}
ll odg = -1;
for(int LL = 0;LL < M * M;LL++){
if(dp[LL] < 0) continue;
ll jos = greedy(L - LL);
if(jos == -1) continue;
odg = max(odg, jos + bla + dp[LL]);
}
if(odg < 0)
printf("impossible\n");
else
printf("%lld\n", odg);
return 0;
}
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... |