AtCoder Beginner Contest 180
はい。
AtCoder Beginner Contest 180
oooox- 863(+46) ちょっと上がりました。
A - box
PyPy3
n,a,b=map(int,input().split()) print(n-a+b)
問題文通りにN個からA個取り出してB個追加します。
B - Various distances
PyPy3
n=int(input()) l=[abs(int(i)) for i in input().split()] print(sum(l)) y=0 for i in l: y+=i**2 print(y**0.5) print(max(l))
問題文の指示通りにします。
C - Cream puff
PyPy3
n=int(input()) ans=set([]) i=1 while i**2<=n: if n%i==0: ans.add(i) ans.add(n//i) i+=1 ans=list(ans) ans.sort() for i in ans: print(i)
約数を調べます。ループで探します。調べている数の2乗がN以上になったら終わります。。
D - Takahashi Unevolved
PyPy3
x,y,a,b=map(int,input().split()) ans=0 while 1: if x*a<=x+b and x*a<y: x*=a ans+=1 else: ans+=(y-x-1)//b break print(ans)
A倍にするほうが強さが大きくならない間はひたすらA倍にします。1から2倍にし続けたとしても最大の1018までは大したループ回数ではないです。A倍が使えなくなったら、B加算は割り算で求めました。Bで割り切れるときは強さが丁度Yになるので、1引いてからBで割るのがいいと思います。
E問題以降はあとで