ABC163 Pythonで参加
ABC163 (A〜C + D)
A - Circle Pond
これがIE(内部エラー)になってしまったんですよね。 Python では標準モジュール math に円周率が入っています。
import math print(int(input()) * math.pi * 2)
B - Homework
sum とif文が書ければ大丈夫です。
n, m = map(int, input().split()) A = list(map(int, input().split())) ans = sum(A) if ans > n: ans = -1 else: ans = n - ans print(ans)
C - management
A_i はリストとして受け取りました。それぞれの要素をカウントして出力すれば良いのですが、count メソッドを使うとO(N2)で間に合いません。各A_iに対してその数のカウントをで増やしていけばO(N)で大丈夫です。
N = int(input()) A = list(map(int, input().split())) cnt = [0] * N for i in A: cnt[i-1] += 1 for j in cnt: print(j)
[追記]
D - Sum of Large Numbers
考察ポイント
10100 + a の形の数の和を考える訳ですが、a の方は10100より十分小さいので、違う個数の和が等しくなることはありません。
i 個の和を考えるときその数のうち最大でないものを1増やすことで、合計が1増えます。よって、最小値と最大値の間の全ての数をとることができます。
実装は難しくないでしょう。
n, k = map(int, input().split()) def sum_count(x): return (2*n-x+1)*x//2 - x*(x-1)//2 + 1 ans = 0 for i in range(k, n+2): ans += sum_count(i) ans %= 10 ** 9 + 7 print(ans)