# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
191344 | Ruxandra985 | Kitchen (BOI19_kitchen) | C++14 | 27 ms | 1148 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 <bits/stdc++.h>
#define DIMN 310
using namespace std;
int a[DIMN] , b[DIMN];
int v[DIMN] , tt[DIMN * DIMN] , ok[DIMN * DIMN];
int n , k;
int maybe (int sum){
int nod , elem , solved , poz , i , put , outof;
nod = sum;
elem = 0;
while (nod){
v[++elem] = tt[nod];
nod = nod - b[tt[nod]];
}
/// v e lista pe care vreau eu sa o am , cu suma fixa sum
/// eu la suma asta am maximizat nr de elem distincte
solved = 0;
int s = 0;
for (i=1;i<=elem;i++){
if (b[v[i]] > n)
solved++;
else s += b[v[i]];
}
if (s / n + solved >= k)
return 1;
return 0;
}
int main()
{
FILE *fin = stdin;
FILE *fout = stdout;
int m , sum , i , val , sol;
fscanf (fin,"%d%d%d",&n,&m,&k);
sum = 0;
for (i=1;i<=n;i++){
fscanf (fin,"%d",&a[i]);
sum += a[i];
if (a[i] < k){
fprintf (fout,"impossible");
return 0;
}
}
sort (a + 1 , a + n + 1);
for (i=1;i<=m;i++){
fscanf (fin,"%d",&b[i]);
}
sort (b + 1 , b + m + 1);
/// ai putea face un rucsac asa de idee
ok[0] = 1;
tt[0] = -1;
for (i = 1 ; i <= m ; i++ ){
for (val = 300 * 300 ; val - b[i] >= 0 ; val--){
if (!ok[val] && ok[val - b[i]]){
ok[val] = 1;
tt[val] = i;
}
}
}
/// 300 ^ 3
sol = 2000000000;
for (val = sum ; val <= 300 * 300 ; val++){
if (ok[val] && maybe(val)){
sol = min (sol , val - sum);
break;
}
}
if (sol == 2000000000){
fprintf (fout,"impossible");
}
else {
fprintf (fout,"%d",sol);
}
return 0;
}
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... |