AtCoder ABC156
AtCoder ABC156解いた分だけまとめ。
今回はABC3完。Dも途中まで考えてたけどあとで投稿したらWA返ってきた...
レートはこんな感じ。次くらいで300台行きたい。茶色まで後少し。
目次
A. Beginner
AtCoderのレート算出式超簡単版らしい(解説放送によれば)
普通に言われていること実装できますか問題なので、素直に実装する。
参加者10回以上の参加者の内部レートの式は、
表示レート + 100×(10-参加回数)であることに注意する。
ACしたコード
#coding:utf-8 n, r = map(int, input().split()) if n >= 10: print(r) else: print(r + 100*(10-n))
B. Digits
10進n進変換したあとの桁数を求める問題。
ということで、10進n進変換の部分だけ関数にした。
ACしたコード
#coding:utf-8 def base(num, n): if int(num/n): return(base(int(num/n), n)+str(num%n)) return(str(num%n)) if __name__ == "__main__": n, k = map(int, input().split()) base_num = base(n, k) print(len(base_num))
C. Rally
最初数学問題かと思ったら、入力範囲が100までだったのを良いことに、
全探索でいけることに気づいたのでそれで解いた。
pの場所を全通り見て、参加者の必要体力合計の最小値を更新していく方針。
ACしたコード
#coding:utf-8 n = int(input()) x = list(map(int, input().split())) ans = 100000000000000000000 for i in range(1, 101): p = i power = 0 for j in range(n): power += (x[j] - p)*(x[j] - p) if power < ans: ans = power print(ans)