はじめに
前回
14日目
#14
今日はBです。
考えたこと
ABC081-B
ABC081-Bは$A_i$が偶数のときは2で割り切れるまで割ります。奇数のときはすぐにquitしてます。
n=int(input())a=list(map(int,input().split()))counter=[]foriinrange(n):count=0ifa[i]%2==0:whilea[i]%2==0:a[i]//=2count+=1counter.append(count)else:print(0)quit()print(min(counter))
ABC087-B
ABC087-Bは思考停止で3重ループしてます。
a=int(input())b=int(input())c=int(input())x=int(input())ans=0foriinrange(a+1):forjinrange(b+1):forkinrange(c+1):price=500*i+100*j+50*kifprice==x:ans+=1print(ans)
ABC083-B
ABC083-BはNが$10^4$程度なので全てのNについて調べています。$1\leq i \leq n$のiをstrにして桁ごとに合計してifで分けています。
n,a,b=map(int,input().split())ans=0foriinrange(n+1):i=str(i)k=0forjinrange(len(i)):k+=int(i[j])ifk<=bandk>=a:ans+=int(i)print(ans)
ABC088-B
ABC088-Bはお互いに最適な動きをするので、残っている最大のカードを取ります。なので、sortして1個ずつ合計しています。別にプレイヤーごとに分けなくても、それぞれで差分とってもいい。
n=int(input())a=list(map(int,input().split()))a.sort(reverse=True)alice=0bob=0foriinrange(n):ifi%2==0:alice+=a[i]else:bob+=a[i]print(alice-bob)
ABC085-B
ABC085-Bは同じ大きさの餅は置けないので、setで重複無しにしてsortしています。
n=int(input())d={int(input())for_inrange(n)}d=list(d)d.sort()print(len(d))
まとめ
Bくらいは解ける。明日のCからが本番!
では、また