Submission #604359

#TimeUsernameProblemLanguageResultExecution timeMemory
604359PlurmUplifting Excursion (BOI22_vault)C++11
0 / 100
5062 ms3360 KiB
#include <bits/stdc++.h>
using namespace std;

map<int, int> a, knapsack;
int main() {
  int m;
  long long l;
  cin >> m >> l;
  knapsack[0] = 0;
  for (int i = -m; i <= m; i++) {
    cin >> a[i];
    for (int rep = 0; rep < a[i]; rep++) {
      map<int, int> tmp;
      for (auto p : knapsack) {
        tmp[p.first + i] = max(tmp[p.first + i], p.second + 1);
      }
      for (auto p : tmp) {
        knapsack[p.first] = max(knapsack[p.first], p.second);
      }
    }
  }
  if (l >= 1e9)
    printf("impossible\n");
  else if (knapsack.count(l))
    printf("%d\n", knapsack[l]);
  else
    printf("impossible\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...