# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
202283 | errorgorn | Kitchen (BOI19_kitchen) | C++14 | 47 ms | 764 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int n,m,k;
int food[305];
int chef[305];
int memo[90005];
int main(){
//freopen("input.txt","r",stdin);
scanf("%d%d%d",&n,&m,&k);
if (m<k){
printf("Impossible\n");
return 0;
}
for (int x=0;x<n;x++){
scanf("%d",&food[x]);
if (food[x]<k){
printf("Impossible\n");
return 0;
}
}
for (int x=0;x<m;x++){
scanf("%d",&chef[x]);
}
memset(memo,-1,sizeof(memo));
int total=0; //total hours to cook
for (int x=0;x<n;x++) total+=food[x];
memo[0]=0;
for (int x=0;x<m;x++){
for (int y=90005-chef[x];y>=0;y--){
if (memo[y]!=-1) memo[y+chef[x]]=max(memo[y+chef[x]],memo[y]+min(n,chef[x]));
}
}
int req=n*k;
for (int x=total;x<90005;x++){
if (memo[x]>=req){
printf("%d\n",x-total);
return 0;
}
}
printf("Impossible");
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |