AtCoder Beginner Contest 163 感想 &解説
AtCoder Beginner Contest 163が先ほど終了しました。
皆さん、お疲れ様でしたー。
コンテスト開始後問題を開こうとすると
"500 Internal Server Error" と出たと思います。
そうです。鯖落ちしていたのです。
ある方はこのような諸説をたてていたりします...
【もしかして】
— _ℝ ute_ (@rute_not_route) April 19, 2020
ジャッジサーバーに1万人が一斉に提出を行ったためにそこで"三つの密"の状態になり
サーバーがコロナウイルスに感染してunratedになった回
A問題ではIE(内部エラー)を初めて観測しました。
21:15:18には運営からunratedの通知が来ました。正直なところこれはもう仕方が無かったのかなと思います。
AtCoder社のサーバーってどのようになっているのかが気になります。
今回は、A問題・B問題・C問題を7分で通しました。(おそらく簡単だったかもしれません)
以降、解説と考察です。
A問題 A - Circle Pond
https://atcoder.jp/contests/abc163/tasks/abc163_a
半径がの円の周長はです。
Python3では、math.piを利用することで円周率を利用できるため
この値を出力できます。
https://atcoder.jp/contests/abc163/submissions/12080972
B問題 B - Homework
https://atcoder.jp/contests/abc163/tasks/abc163_b
ループを利用するとも考えたのですが、以下のような条件分岐によりで実行ができます
(1) もし sum(A) ≦ならば、-sum(A)を出力する
(2) そうでなければ、-1を出力する
https://atcoder.jp/contests/abc163/submissions/12082247
C問題 C - management
https://atcoder.jp/contests/abc163/tasks/abc163_c
この問題ですが、まず 0の要素が個あるリストを作成します。
次に、以下のようなループを回します。
リストの[A[i]-1]番目の要素を+1する
あとは、リストの各要素を出力すれば期待通りの出力を求めることが出来ます。
時間計算量はです。
https://atcoder.jp/contests/abc163/submissions/12095608
以降、unratedになってしまったので考察です。
D問題 D - Sum of Large Numbers
https://atcoder.jp/contests/abc163/tasks/abc163_d
の時、各に関して組み合わせの数は以下のようになります。
以降、といちいち書くのはややこしいのでをとします。
0,1,2,3の3通り
0 and 1 , 0 and 2, 0 and 3, 1 and 2, 1 and 3, 2 and 3
このうち、0 and 3と1 and 2が被っているので5通りになります。
0 and 1 and 2, 0 and 1 and 3, 0 and 2 and 3, 1 and 2 and 3の4通り
0 and 1 and 2 and 3 の1通り
同様に、の場合
= 5通り
= 7通り
= 7通り
= 5通り
= 1通り
となります。
ここで、気づくのは本来の通り数が6通り以上の時に通り数が少なくなっているということです。
これを実装すればよいのですが、Python3で実装しようとするとなぜかオーバーフローになってしまいました。別の解法があるかもしれないので、終了後に考えてみようと思います。(コメントなどで原因を教えていただけると助かります)
以上、AtCoder Beginner Contest 163 感想&解説 でした。
最後に「幻となった水パフォーマンス」の画像を掲載します。
(多分コンテスト終了後には茶色くらいに落ちていると思います)
ここで皆さんにお知らせがあります。
来週のyukicoderコンテストで、私が作問した問題が出題される予定です!(といっても、1問だけなのですが)
難易度は★1 ~ 1.5相当を予定しています。
コンテスト終了後、当ブログにて解説を公開する予定です。お楽しみに!