C - つらら Editorial by Mitsubachi


一度伸び始めたつららは折れるまで伸び続けます。よって、各つららが伸び始める時間が求まればこの問題は解くことができます。

あるつららが折れたタイミングから伸び始めるつららとして考慮するべきなのは、その左右のみでよいのは明らかです。よって、priority_queueなどを用い、つららについてその場所と伸び始める時間を伸び始める時間の昇順に管理することでこの問題は \(O(N \log N)\) で解くことができます。

posted:
last update: