# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
299865 | 2020-09-15T22:12:30 Z | ly20 | Kitchen (BOI19_kitchen) | C++17 | 4 ms | 512 KB |
#include <bits/stdc++.h> using namespace std; const int MAXN = 310; bool dp[MAXN * MAXN]; int sm[MAXN]; int n, m, k; int main() { bool ok = true; scanf("%d %d %d", &n, &m, &k); int ms = 0; for(int i = 0; i < n; i++) { int a; scanf("%d", &a); ms += a; if(a < k) ok = false; } //printf("%d\n", ms); if(m < k) ok = false; dp[0] = 1; for(int i = 0; i < m; i++) { int a; scanf("%d", &a); for(int j = MAXN * MAXN - 1; j >= a; j--) { int p = min(n, a); if(dp[j - a]) { //printf("%d\n", j); dp[j] = 1; int t = p + sm[j - a]; sm[j] = max(t, sm[j]); //printf("%d\n", sm[j]); } } } int ft = ms - 1; for(int i = ms; i < MAXN * MAXN; i++) { if(sm[i] >= n * k) { //printf("%d\n", i); ft = i; break; } } if(ft == ms - 1 || !ok) printf("Impossible\n"); else printf("%d\n", ft - ms); return 0; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 384 KB | Output is correct |
2 | Correct | 1 ms | 256 KB | Output is correct |
3 | Incorrect | 1 ms | 384 KB | Output isn't correct |
4 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 384 KB | Output is correct |
2 | Correct | 1 ms | 256 KB | Output is correct |
3 | Incorrect | 1 ms | 384 KB | Output isn't correct |
4 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 2 ms | 512 KB | Execution killed with signal 11 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 4 ms | 512 KB | Execution killed with signal 11 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 384 KB | Output is correct |
2 | Correct | 1 ms | 256 KB | Output is correct |
3 | Incorrect | 1 ms | 384 KB | Output isn't correct |
4 | Halted | 0 ms | 0 KB | - |