Codeforces Round #660 (Div. 2) - C. Uncle Bogdan and Country Happiness

問題リンク

解説

葉から見ていきましょう。そうするとgood moodの人とbad moodの人の人数がそれぞれ一意に定まります。

上に登っていってる間はbad→goodにすることのみができ、このときgood - badは2増加します。

それをgood mood の人とbad moodの人が0以上の人数でできるかどうかをチェックするだけです。

DFSをするだけでできます。計算量は O(n)です。

提出コード

codeforces.com