Toy と帽子と ADP BE

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

AtCoder Beginner Contest 350(Promotion of AtCoderJobs)

4完1WA

各問題

A - Past ABCs

後ろ3文字を数値に変換して「1 以上 かつ 349 以下 かつ 316 でない」を満たしていれば Yes です。

強調部分をうっかりして 1WA...。お気に入り順位表見ても半分以上が 1WA でした。

B - Dentist Aoki

サイズ N の bool の配列を初期値 true で用意しておいて、抜いたら false に、生やしたら true にすればよいです。

C - Sort

A の配列とともに各数字が何番目に入っているかの配列も用意しておいて、後者の 1 番目から順にみていって入れ替え操作を実際にしていけばよいです。

D - New Friends

dsu で友達関係を管理するとともに、各ユーザが自分より大きい番号のユーザについて友達が何人いるか(X)を管理しておきます。

あとは dsu の各グループについて番号の小さいほうからチェックして、i 番目のユーザについて「そのグループの人数 - i - X」が新たに友達になれる人数です。

今気づいたんですが、atcoder::dsu の groups の格納順は未定義とされているのに、ソートしなくても通ったのですが、たまたま?それとも未定義なだけで(現在の)実装上は昇順に並んでいたりする?

E - Toward 0

きたいちなんもわからん...。

F - Transpose

大文字小文字の変換は、その文字にかっこがいくつ寄与しているかで決まる(奇数なら変わる、偶数なら変わらない)ということはすぐわかったのですが、並び順がどうなるかが決めきれず。

残り5分で再帰でいけそうというめどがついたのですが、実装は到底間に合わず。

まとめ

辛勝。F は方針あってたっぽいので通したかった...。