AtCoder Beginner Contest 112
AtCoder Beginner Contest 112 (ABC112) の解説です。
AtCoder Beginner Contest 112 旧版
AtCoder Beginner Contest 112 beta版
解けた問題だけ解説をしていきますー
要項
AtCoder Beginner Contest 112
rated 1200
10/6(土) 21:00 ~ 22:40 (100分)
100-200-300-400 (4問)
ペナルティ: 5分
方針
全完
A - Programming Education
やるだけなので、特にいうことはないです。
B - Time Limit Exceeded
求めるべきはを満たすの中で最小のものなので、minを用いて求めれば良いです。
C - Pyramid
で求めることは可能そうですが、面倒です。
今回はABCであることを加味して、簡単にで解く方法を説明します。
まず、答えの座標を決め打ってしまいます。
この時、各に対して、答えの高さはならばの範囲に、そうでないならばになります。
これを全ての座標に対して試し、矛盾なく一つの高さに定まったらそこを答えとすれば良いです。
D - Partition
まず、少なくとも一つのは以下の大きさになるので、答えもそれ以下になります。
その中で最大の最大公約数とは何でしょうか?
まず、答えをとしましょう。この時、全てのはの倍数です。
つまり、はの倍数となるはずです。
言い換えれば、はの約数の中で、最初に以下になる値です。
ということは、約数を列挙して、その中で最初に以下になる値を出力すれば良いことが分かります。
約数はを用いてがの倍数ならばとが約数としていけば列挙できます。
最終的に計算量はです。
結果
oooo 4完(1000点) 3:57-3:47-41:26(3WA)-79:16(2WA) / 104:16
493位
感想
うーん、C問題が思ったよりバグらせて辛かった。
何にせよ、まぁ久しぶりの初心者向けコンテストって感じになっていたかと思います。
これくらいの難易度だと易しくて良いね。