WARush

SRMの結果とか、解けた問題のコードを書いていきます

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;
    }
};