0.はじめに
最近前より多くなった気がする素開催。
B問題に難しいというか面倒な問題が
最近増えてきている気がします・・・。
今回は典型的な問題が多かった感じで
Dまで解けました。
おかげでレート+20で725まで持ち直しました。
1.A - Election 2
都知事選もあった(といっても1月前か・・・。)ので
選挙の問題。
単純に、過半数を求めて、青木さんか高橋さんの
得票数が肥えているかを判定してYesかNoを出力しました。
https://atcoder.jp/contests/abc366/submissions/56519356
2.B - Vertical Writing
最初は問題が何を言っているかさっぱりでしたが
よく見たら横書きを縦書きに。とあり、ようやく理解できました。
理解できたはいいけど、実装はまたなんか面倒な感じで
こねくり回して回答しました。
無駄なロジックが多い気がしますが、まぁACは取れました。
【実装】
・文字列をリストSに格納
・合わせて文字列の最長数を変数Mに保持
例題1の例のリストS
abc
de
fghi
・文字列をM文字に合わせ、後ろをで埋めたリストTを作成
例題1の例のリストT
abc
de**
fghi
・リストansにM行Tの行列を入れ替えた文字列を登録
例題1の例のリストans
fda
geb
hc
i**
・リストansの後ろにあるを除外し
1行ずつ表示して終了
例題1の出力例
fda
geb
h*c
i
https://atcoder.jp/contests/abc366/submissions/56539636
3.C - Balls and Bag Query
よくある問題で球の出し入れにより
種類数が増減する場合に種類数変数を増減させることにより
種類数をいちいち数えないで済ませるという手法で
すんなりACでした。
【考え方】
・デフォルト(int)辞書Dにキーx、値xの球の数を保持
・種類数変数Sを0で初期化
・球を入れる時、辞書D[x]の値が0の時、Sに1加算
・球を出す時、辞書D[x]の値が1の時、Sから1減算
・表示はSを表示
Bよりは簡単だった気がしました。
https://atcoder.jp/contests/abc366/submissions/56543016
4.D - Cuboid Sum Query
こちらも、難しいと言うか面倒な問題。
累積和で解くのはわかったので、あとは、粛々と
実装するだけ。
昔解いた似たような問題から
ロジックを持ってきてつなぎ合わせた結果ACとなりました。
https://atcoder.jp/contests/abc366/submissions/56561653
以上