제출 #1288782

#제출 시각아이디문제언어결과실행 시간메모리
1288782HiepVu217Kitchen (BOI19_kitchen)C++20
100 / 100
44 ms1236 KiB
//Proud of You// #include <bits/stdc++.h> #pragma GCC optimization ("O3") #pragma GCC optimization ("unroll-loops") using namespace std; const int N = 3e2 + 17; int n, m, k, a[N], b[N], f[7][N * N], sum; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n >> m >> k; for (int i = 1; i <= n; ++i) { cin >> a[i]; if (a[i] < k) { cout << "Impossible"; return 0; } sum += a[i]; } for (int i = 1; i <= m; ++i) { cin >> b[i]; } for (int i = 1; i <= m; ++i) { int t = i & 1; for (int j = 1; j < N * N; ++j) { f[t][j] = 0; if (j >= b[i] && (f[t ^ 1][j - b[i]] || j == b[i])) { f[t][j] = f[t ^ 1][j - b[i]] + min (n, b[i]); } f[t][j] = max (f[t][j], f[t ^ 1][j]); } } for (int i = sum; i < N * N; ++i) { if (f[m & 1][i] >= n * k) { cout << i - sum; return 0; } } cout << "Impossible"; }
#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...