# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
303025 | 2020-09-19T18:46:02 Z | bigg | Kitchen (BOI19_kitchen) | C++14 | 15 ms | 640 KB |
#include<bits/stdc++.h> using namespace std; const int MAXV = 1e5 + 10; int dp[MAXV]; int a[310], b[310]; int n, m, k; int main(){ scanf("%d %d %d", &n, &m, &k); int soma = 0, mina = 1e9 + 7; for(int i = 1; i <= n; i++){ scanf("%d", &a[i]); mina = min(mina, a[i]); soma += a[i]; } for(int i = 1; i <= m; i++) scanf("%d", &b[i]); if(mina < k){ printf("Impossible\n"); return 0; } if(k == 1){ dp[0] = 1; for(int i = 1; i <= m; i++){ for(int j = 90000 - b[i]; j >= 0; j--){ dp[j + b[i]] |= dp[j]; } } for(int i = soma; i <= 90000; i++){ if(dp[i]){ printf("%d\n", i -soma); return 0; } } printf("Impossible\n"); } else{ int ans = 1e9 + 7; for(int i = 0; i <(1<<m); i++){ if(__builtin_popcount(i) < k) continue; int lsoma = 0; int chefmin = n*k; int cheftot = 0; for(int j = 1; j <= m; j++){ if((1<<(j-1))&i) lsoma += b[j],cheftot += min(n,b[j]); } if(cheftot >= chefmin && lsoma >= soma){ ans = min(lsoma - soma, ans); } } if(ans == 1e9 + 7){ printf("Impossible\n"); return 0; } printf("%d\n", ans); } }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 640 KB | Output is correct |
2 | Correct | 1 ms | 640 KB | Output is correct |
3 | Correct | 1 ms | 640 KB | Output is correct |
4 | Correct | 0 ms | 256 KB | Output is correct |
5 | Correct | 1 ms | 640 KB | Output is correct |
6 | Correct | 0 ms | 384 KB | Output is correct |
7 | Correct | 1 ms | 384 KB | Output is correct |
8 | Correct | 1 ms | 640 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 640 KB | Output is correct |
2 | Correct | 1 ms | 640 KB | Output is correct |
3 | Correct | 1 ms | 640 KB | Output is correct |
4 | Correct | 0 ms | 256 KB | Output is correct |
5 | Correct | 1 ms | 640 KB | Output is correct |
6 | Correct | 0 ms | 384 KB | Output is correct |
7 | Correct | 1 ms | 384 KB | Output is correct |
8 | Correct | 1 ms | 640 KB | Output is correct |
9 | Correct | 1 ms | 256 KB | Output is correct |
10 | Correct | 2 ms | 384 KB | Output is correct |
11 | Correct | 1 ms | 384 KB | Output is correct |
12 | Correct | 3 ms | 256 KB | Output is correct |
13 | Correct | 2 ms | 384 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 13 ms | 640 KB | Output is correct |
2 | Correct | 11 ms | 640 KB | Output is correct |
3 | Correct | 15 ms | 640 KB | Output is correct |
4 | Correct | 15 ms | 640 KB | Output is correct |
5 | Correct | 15 ms | 640 KB | Output is correct |
6 | Correct | 11 ms | 640 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 0 ms | 256 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 640 KB | Output is correct |
2 | Correct | 1 ms | 640 KB | Output is correct |
3 | Correct | 1 ms | 640 KB | Output is correct |
4 | Correct | 0 ms | 256 KB | Output is correct |
5 | Correct | 1 ms | 640 KB | Output is correct |
6 | Correct | 0 ms | 384 KB | Output is correct |
7 | Correct | 1 ms | 384 KB | Output is correct |
8 | Correct | 1 ms | 640 KB | Output is correct |
9 | Correct | 1 ms | 256 KB | Output is correct |
10 | Correct | 2 ms | 384 KB | Output is correct |
11 | Correct | 1 ms | 384 KB | Output is correct |
12 | Correct | 3 ms | 256 KB | Output is correct |
13 | Correct | 2 ms | 384 KB | Output is correct |
14 | Correct | 13 ms | 640 KB | Output is correct |
15 | Correct | 11 ms | 640 KB | Output is correct |
16 | Correct | 15 ms | 640 KB | Output is correct |
17 | Correct | 15 ms | 640 KB | Output is correct |
18 | Correct | 15 ms | 640 KB | Output is correct |
19 | Correct | 11 ms | 640 KB | Output is correct |
20 | Incorrect | 0 ms | 256 KB | Output isn't correct |
21 | Halted | 0 ms | 0 KB | - |