参加はしてないので後日追いました。
内容
A. Passing the Ball
0 番さんからボールを指示通りに左右に渡すことを 回繰り返したとき、ボールを 1 回以上受け取った人が何人いるかを求める問題です。
回愚直に試して受け取った人を都度 std::set に入れることで解けます。
B. Right Maximum
配列の最大値を見つけ、それ以降の要素をすべて排除することを、配列が空になるまで行うとき、排除する操作が何回行われるかを求める問題です。
{a_i, i} の pair を管理して、これを単に降順にソートしてあげます。pos 番目以降を排除したというのを管理しておいて、すべての要素を調べて pos が変更された回数を数えれば ok です。
C. Spring
日ごとに店に来る人と、 日ごとに店に来る人と、 日ごとに店に来る人がいて、店に来ると 6 つの商品をもらえるが、同じ日に複数人来た場合その人たちで山分けするというルールの下で、それぞれの人はいくつの商品をもらえるかという問題です。
日ごとに店に来る人を考えます。同じように考えれば他の人に対しても解けることが分かります。 簡単な包除を考えると、 を求めればよいです。
D. Alternating Path
頂点 辺の無向グラフ
感想
おわり
おわりです。