ABC161 Pythonで参加した
ABC161(A〜C)
初記事。競プロ初心者です。東工大というところで学生してます。
灰色コーダーですので、あまり参考にならないと思いますが、考えたことや感想など載せていきます。output だいじ。
まあ、競プロでPython使う人は増えているようだし、Pythonの記事はまだそこまで多くない気がするので、少しは意義もあるかな。
と言っても、コンテスト内でACしたのはCまでです。 残りは後日解けたら追記します。
Dはcodeは書けたけどTLE確実だったので、出しませんでした。復習しておきます。
A - ABC Swap
箱 A, B, C の中身を入れ替えるわけですが、x、y、zの移動は簡単に追えるので、z, x, yの順番になることに気づくだけです。
x, y, z = map(int, input().split()) print(z, x, y)
B - Popular Vote
A_i をリストとして持ち、各要素が(A_i の総和) / (4M) 以上かどうかを for ループでチェックしていきました。 シンプルですね。
n, m = map(int, input().split()) a = list(map(int, input().split())) popular = 0 for i in range(n): if a[i] >= sum(a) / (4 * m): popular += 1 print("Yes" if popular >= m else 'No')
C - Replacing Integer
これは少し数学力よりの問題でしょうか。 実装はめちゃ簡単です。 こういうのがすぐできたのはよかった。 絶対値とってるので少しわかりにくいかもしれませんが、結局 K を足したり引いたりした絶対値を最小にしたいので、とりあえず割り算すればいいと思います。
7 を 4 で割ったあまりは 3 ですが、これよりも |3-4|の方が小さいです(3 ≡ -1 (mod 4))。 kで割った余りは必ず0以上k未満の値として得られるので、そこからKを引いて絶対値とったもの、つまりkから余りを引いたものと比較して小さい方をとれば良いでしょう。
n, k = map(int, input().split()) ans = min(n % k, k - (n % k)) print(ans)