プログラム書いてる人のは見てないからどんなアルゴリズムでやってるかは知らんが
全部の皿の時間数合計以下にはならんのだから、理想的な最短時間は簡単に出るよな
あとはそれを満たす組み合わせを探して、無ければ+1した組み合わせを探して...
ってやっていけばどうだろ