ABC161 E - Yutori
問題:E - Yutori
解答:Submission #11561483 - AtCoder Beginner Contest 161
解法:まず、左から貪欲に仕事をすることを考える(なるべく前に仕事を終わらせる)。vl[i]:i日目に仕事の割り当てがあれば何番目の仕事か(割り当てがなければ-1)とするとき、vl[i] = x はx番目の仕事が最短でi日目に割り当てられることを意味する。
次に、右から貪欲に仕事をすることを考える(なるべく後に仕事を終わらせる)。vr[i]:i日目に仕事の割り当てがあれば何番目の仕事か(割り当てがなければ-1)とするとき、vr[i] = x はx番目の仕事が最遅でi日目に割り当てられることを意味する。
vl[i] = vr[i] = x (x ≠ -1)であるとき、x番目の仕事はi日目に割り当てるしかない。そうでない場合、x番目の仕事は複数の日付に割り当てることができる。よってvl[i] = vr[i] = x (x ≠ -1)となるようなiを出力してゆけばよい。