コンテストページ
解法
✔A - 宝くじ
あたりの番号のうち、自分のチケットに書いていないものを探して数えます。 1 つだった場合はボーナスさんと比較です。
✔B - あみだくじ
逆からたどります。 横に並んでいるものはどれが先でもよいので、適用していきます。
パースが難しいのですが、std::getline を使うと良いです。
✔C - 積み重ね
答えは LIS の長さです。
なぜでしょう。lower bound で LIS を求めるアルゴリズムをします。これのとおりにダンボールを置いて損をしません。
✔D - アルファベット探し
これ好きです。
A, B, C にある特徴的な連結成分サイズは 9, 14, 3 です。 グリッドの連結成分サイズを列挙して、平方数で割ってこれらを探しましょう。
後ろ 2 つは拡大されても平方数で割れば復元できるのですが、9 は 1 と紛れてしまうので無理です。 しかし、連結成分の個数を計算しておいて、B と C の分を引いて、A 1 個あたりの連結成分数で割ると良いです。
結果
易しめなセットでしたから、この速さでも 18 位です。