5完。Eが面白かった。 A - Divisible 当てはまるものをvectorに突っ込んでいく。これは、簡単だけど実装だけで1分行ってしまうやつ。あ、出力の「昇順に出力せよ」を読んでなかった(問題文のところはちゃんと読んだ)。 B - Substring 愚直に全列挙してstd::setに突っ込む。 C - Ideal Holidays Dは周期A+Bで割ったあまりに置き換えてsort, uniqueしておく。休日をどこで始めるか全探索する。Dの先頭かどうかで場合分けして、先頭でないときは末尾が次の週なのでA+Bを足す(ここがオーバーフローしないか不安だったのでllにした)。典型ではあるけど…