# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
493117 | Haruto810198 | Kitchen (BOI19_kitchen) | C++17 | 0 ms | 0 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
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;
}