# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1127277 | salmon | Uplifting Excursion (BOI22_vault) | C++20 | 5092 ms | 2368 KiB |
#include <bits/stdc++.h>
using namespace std;
int N;
int M;
long long int lst[210];
long long int L;
int main(){
scanf(" %d",&M);
scanf(" %lld",&L);
int memo[M * 2 * 50 * 50 + 5];
for(int i = 0; i <= M * 50 * 50 * 2; i++){
memo[i] = -1;
}
memo[M * 50 * 50] = 0;
for(int i = 0; i <= M * 2; i++){
scanf(" %lld",&lst[i]);
for(int j = 0; j < lst[i]; j++){
int num = i - M;
if(num <= 0){
for(int i = -num; i <= M * 50 * 50 * 2; i++){
if(memo[i] != -1) memo[i + num] = max(memo[i + num],memo[i] + 1);
}
}
else{
for(int i = M * 50 * 50 * 2 - num; i >= 0; i--){
if(memo[i] != -1) memo[i + num] = max(memo[i + num],memo[i] + 1);
}
}
}
}
if(L >= -M * 50 * 50 && L <= M * 50 * 50 && memo[L + M * 50 * 50] != -1)printf("%d\n",memo[L + M * 50 * 50]);
else printf("impossible");
}
/*
1 100
100 100 100
*/
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... |