제출 #604374

#제출 시각아이디문제언어결과실행 시간메모리
604374PlurmUplifting Excursion (BOI22_vault)C++11
5 / 100
3106 ms1788 KiB
#include <bits/stdc++.h> using namespace std; class negarr { private: int data[63750 * 2 + 1]; public: negarr() { memset(data, 0, sizeof(data)); } void reset() { fill(data, data + 63750 * 2 + 1, -1000000000); } int &operator[](int i) { return data[i + 63750]; } }; negarr a, knapsack; int main() { int m; long long l; cin >> m >> l; if (l > 63750 || l < -63750) { printf("impossible\n"); return 0; } knapsack.reset(); knapsack[0] = 0; for (int i = -m; i <= m; i++) { cin >> a[i]; for (int rep = 0; rep < a[i]; rep++) { negarr tmp; tmp.reset(); for (int id = -63750; id <= 63750; id++) { if (-63750 <= id + i && id + i <= 63750) tmp[id + i] = max(tmp[id + i], knapsack[id] + 1); } for (int id = -63750; id <= 63750; id++) { knapsack[id] = max(knapsack[id], tmp[id]); } } } if (knapsack[l] >= 0) 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...