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)
以上