AtCoder ABC 161の復習

さて、今回は161の復習です
今回はCまで解けるでしょうか・・・

A
受け取った値を順番変えて出力、以上

a, b, c = map(int, input().split())
print(c, a, b)


B
やってしまった、かなりの数エラーを出してしまった。
条件式のところ、以上以下、未満をきちんと確認せずにやってしまった、反省・・・

N, M = map(int, input().split())
a = list(map(int, input().split()))

sums = sum(a)
count = 0

for i in a:
  #print(i, sum)
  if i >= (sums / ( M * 4 )):
    count += 1

if count >= M:
  print('Yes')
else:
  print("No")


C
これはすいません、解答見ちゃいました
パターンで見てみます
7, 4とあった場合、3, 1, 3, 1...とずっと同じ値が続く よって答えは1
2, 6とあった場合、2, 4, 2, 4...とずっと同じ値が続く よって答えは2
20, 9とあった場合、11, 2, 7, 2, 7...とずっと同じ値が続く よって答えは2
結局循環するわけだが、循環する片側はN%Kの値となる
また、もう一つの値はKから上記のあまりを引いた値となる
うーん、こういうひらめき系はきちんと考えていかないとだめっすね・・・

N, K = map(int, input().split())

P = N % K
Q = K - P

if P > Q:
  print(Q)
else:
  print(P)

以上