SRM678 Div1 Easy "ANewHope"
解法
firstWeekからlastWeekへ、indexが遡るように、一番離れているようなシャツが、lastWeekを再現するのにボトルネックになっている。だからそのシャツをとにかく最優先に考えて、洗って乾いたら直ぐに着ていく。
他のシャツは最優先シャツのスケジュールを尊重して邪魔しないように。
ソースコード
class ANewHope { public: int count(vector<int> firstWeek, vector<int> lastWeek, int D) { int n = firstWeek.size(); int move = 0; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (firstWeek[i] == lastWeek[j]) { move = max(move, i - j); } } } return move / (n - D) + ((move % (n - D) == 0) ? 0 : 1) + 1; } };