# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
493117 | Haruto810198 | Kitchen (BOI19_kitchen) | C++17 | 0 ms | 0 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.
err<<"ok"<<endl;
cerr<<"dp_dian : "<<endl;
FOR(i, 0, 10, 1){
if(dp_dian[i] < -INF / 2) cerr<<"- ";
else cerr<<dp_dian[i]<<" ";
}
cerr<<endl;
cerr<<"suf : "<<endl;
FOR(i, 0, md, 1){
FOR(j, 0, 10, 1){
if(suf[i][j] >= INF) cerr<<"- ";
else cerr<<suf[i][j]<<" ";
}
cerr<<endl;
}
cerr<<endl;
cerr<<"dp_weak : "<<endl;
FOR(i, 0, 10, 1){
cerr<<dp_weak[i]<<" ";
}
cerr<<endl;
*/
res = INF;
// weak chefs + dian chefs
FOR(j, 0, meal_sum - 1, 1){
if(dp_weak[j] == 0) continue;
int req_chefs = max((int)0, lim - (j / n)); // required dian chefs
int req_sum = meal_sum - j; // required sum of time
//cerr<<"j = "<<j<<" ["<<req_chefs<<"]["<<req_sum<<"] "<<endl;
if(req_chefs > md or req_sum > dian_sum) continue;
res = min(res, j + suf[req_chefs][req_sum] - meal_sum);
}
// weak chefs only
FOR(j, meal_sum, mw*MAX, 1){
if(dp_weak[j]) res = min(res, j - meal_sum);
}
if(res < INF / 2) cout<<res<<'\n';
else cout<<"Impossible"<<'\n';
return 0;
}