0.はじめに
コンテスト予選ということで難しい問題という先入観が
強すぎてA問題のみ正解という惨憺たる結果に。
翌日やり直してみると、BC問題も普通に解けたであろうと
いうことに気づき、惜しいことをしました。
レートは-41と急落・・・。
1.A - To Be Saikyo
入力されたリストから、2項目以降を切り出したリストBを作成。
リストBの最大値より、リストAの1番目の数値が大きければそのまま
リストAの1番目の数値を出力
リストAの1番目の数値がリストBの最大値以下の場合
リストBの最大値から、リストAの1番目の数値を減算した
数値に1を加算して出力。
https://atcoder.jp/contests/abc313/submissions/44260632
2.B - Who is Saikyo?
問題を勘違いして、すべての値の順序を求めるために
四苦八苦していて時間切れとなりました。
翌日見返してみると、最強だけ求めればよいことに気づき
(回答の出力を考えればそれはそうとなりますが・・・。)
ACとなりました。
【元の考え方】
M組の勝敗のうち、だれにも勝てない人(N位の人)が
一人に決まるかを検索。
一人に決まらなければ、-1を出力して終了
一人に決まったら、M組からN位が弱い情報を
省いて、だれにも勝てない人(N-1位の人)が
一人に決まるかを検索・・・と続けていき、1位までを
求める
→問題として、全員の順位が一意に決まる情報が
提供されないためWA
【ACとなった考え方】
M組の勝敗のうち、だれにも負けない人(1位の人)が
一人に決まるかを検索
一人に決まらなければ-1を出力して終了
一人に決まるのであればその人を出力して終了
https://atcoder.jp/contests/abc313/submissions/44319556
3.C - Approximate Equalization 2
試験中に一回提出しましたがWAとなり、B問題に戻ってしまったので
正解できませんでしたが、翌日見直したところWAはちょっとした
バグのせいだったので、もう少し粘れば・・・と悔やまれました。
【考え方】
リストAの合計をNで割った(切り捨て)値を基準値AAとし
リストAの合計をNで割った余りを基準値を超える個数AMとした場合
最終的にリストAの値は、AM個のAA+1とN-AM個のAAとなる。
【実装】
1)リストAの合計をNで割った(切り捨て)値AAを求める
2)リストAの合計をNで割った余りAMを求める
3)リストAを降順に並べる
4)ans=0を定義
5)以下インデックスiでN回ループ
5-1)AMが1以上の時、変数CAA=AA+1
5-2)AMが0以下の時、変数CAA=AA
5-3)ansにA[i]-CAAの絶対値を加算
5-4)AMから1マイナス
6)ansを2で割った値を出力して終了
【補足】
最初に実装した際、3)のソートを昇順に並べてしまったのと
5-4のAMから1マイナスする部分が抜けていたため
WAとなってしまいました。
https://atcoder.jp/contests/abc313/submissions/44319691
以上