Toy と帽子と ADP BE

主にプログラミングに関わる話をゆるくエモくやっていきます

AtCoder Beginner Contest 216

ABC"E"の4完。2WA。

Dなんなの・・・。

各問題

A - Signed Difficulty

数値の問題と思いきや、文字列を一文字ずつ見ていくだけで片がつく問題でした。

まず.が現れるまではその文字を出力し、.はスルーして、最後の一文字を問題の指定通りに(文字として)判定して記号をつければよいです。

B - Same Name

set<pair<string, string>>に入力を突っ込んで、setのサイズがNなら"No"、異なれば同姓同名がいるので"Yes"です。

set<string>に姓名をつなげた文字列を入れて1WA。あほ過ぎる・・・。

C - Many Balls

後ろから考えて、Nが2の倍数なら2で割って、そうでなければ1を引く、をNが0になるまでします。最終的な答えはその操作をひっくり返したものになります。

D - Pair of Balls

setやmapを使ってなんとかするのかと思って、最後まで解けませんでした・・・。

E - Amusement Park

非想定解っぽいですが、なんと愚直にシミュレーションすれば解けます。(え

もちろん、一つずつ処理していては間に合わないので、Aを逆順でソートして、例えば{10, 7, 5, 2}みたいになったときは、ひとつ目のアトラクションの分で10 + 9 + 8を足し、次は上位二つのアトラクションの分で(7 + 6) * 2を足し、上位三つの分で(5 + 4 + 3) * 3 を足し、とやっていきます。あ、足し算の部分は等差数列の和の問題なのでE問題挑戦レベル以上の人なら問題ないですよね?

Kが足りなくなったときは、残りのKをそこに関わるアトラクションの数で割ってうまいこと計算してください。

説明が下手すぎるのでソースコードを置いておきます。

atcoder.jp

デバッグコードを消し忘れて1WA。あほ過ぎる・・・。

それ以降

見てません。

まとめ

いやーDは解かないといけない問題だった気がします。Eが恐らくは想定されていない単純解法があったためかろうじて水パフォを拾えました。しかいよい流れとはいえませんね。

f:id:mdstoy:20210829230402p:plain