解き方を忘れないためにまとめてるだけなのでコードはめちゃくちゃ不細工です、ここもっと良くできるよって場所あったら教えていただけるとありがたいです!!
B - 1 21
https://atcoder.jp/contests/abc086/tasks/abc086_ba,b = input().split()
num = a+b
if (int(num)**0.5).is_integer():
print("Yes")
else:
print("No")
数字を0.5乗してルートを乗っけるのと同じことをして、もし平方数だったら、integer型になるのでis_integer()で判定する
B - Coins
https://atcoder.jp/contests/abc087/tasks/abc087_ba = int(input())
b = int(input())
c = int(input())
x = int(input())
cnt = 0
for i in range(a+1):
for j in range(b+1):
for k in range(c+1):
if 500*i + 100*j + 50*k == x:
cnt += 1
print(cnt)
脳死全探索で解決、a,b,cの数も含めないと行けないのでrangeの数に1を足しています。
B - Card Game for Two
https://atcoder.jp/contests/abc088/tasks/abc088_bn = int(input())
cards = sorted(list(map(int, input().split())), reverse=True)
a = 0
b = 0
turn = 0
for card in cards:
if turn % 2 == 0:
a += card
else:
b += card
turn += 1
print(a-b)
アリ姐からボブの順で強いカードをとってくので、受け取ったカードの数字をリストにしてsortで大きい順に並べ替える。そしてturn変数を作って順番の判定をする
B - Hina Arare
https://atcoder.jp/contests/abc089/tasks/abc089_bn = int(input())
colours = set(input().split())
if len(colours) == 3:
print("Three")
else:
print("Four")
set型にすれば勝手に重複を消してくれるのよ、そしてlenで要素の数を求めてそのまま出力するだけ
B - Palindromic Numbers
https://atcoder.jp/contests/abc090/tasks/abc090_ba,b = map(int, input().split())
cnt = 0
for i in range(a,b+1):
i = str(i)
if i[0] == i[4]:
if i[1] == i[3]:
cnt += 1
print(cnt)
aもbも5桁と約束されてるので一度str型にして1桁目と5桁目が一緒に数字か等を判定していく
B - Two Colors Card Game
https://atcoder.jp/contests/abc091/tasks/abc091_bn = int(input())
blue = [input() for _ in range(n)]
m = int(input())
red = [input() for _ in range(m)]
ans = 0
for i in range(n):
gain = blue.count(blue[i])
lose = red.count(blue[i])
ans = max(ans, gain-lose)
print(ans)
ansをあらかじめ0にしておくことで絶対に負の数になることがない。gainで青いカードにある特定の文字列の数を調べる、そしてloseで赤いカードにある特定の文字列の数を調べる。最後に現在の最大値と比べる
B - Chocolate
https://atcoder.jp/contests/abc092/tasks/abc092_bn = int(input())
d,x = map(int, input().split())
spans = [int(input()) for _ in range(n)]
total = x
for i in range(n):
total += ((d-1) // spans[i]) + 1
print(total)
1日目は全員チョコを食べられるので、日数から1日目を抜くということでd-1にしてその後にそれぞれの人のチョコレートを食べられる日にちの間隔で割る。最後に1日目に食べられるチョコレートの数を加える
B - Small and Large Integers
https://atcoder.jp/contests/abc093/tasks/abc093_ba,b,k = map(int, input().split())
if (b-a+1) < (2*k):
numbers = [num for num in range(a,b+1)]
else:
numbers1 = [num for num in range(a,a+k)]
numbers2 = [num for num in range(b-k+1,b+1)]
numbers = numbers1 + numbers2
for number in numbers:
print(number)
最初に重複する番号がないかを判定する(例えば、入力値が4 8 3の場合は456と678で6が重複してしまう)、もし重複がある場合は範囲内のすべての数を出力するだけ。もし無い場合は最初にaからa+k番目までに大きい数を求めて、次にb-k+1からb+1までに大きい数を求めて、最後に合体する
B - Toll Gates
https://atcoder.jp/contests/abc094/tasks/abc094_bn,m,x = map(int, input().split())
charge = list(map(int, input().split()))
a = len([i for i in charge if i <= x])
b = len([i for i in charge if i >= x])
print(min(a,b))
一度、初期位置より前にある料金所の数と初期位置より後にある料金所の数を調べ上げて、minメソッドを使って少ない方をとって出力する
B - Bitter Alchemy
https://atcoder.jp/contests/abc095/tasks/abc095_bn,x = map(int, input().split())
ing = [int(input()) for _ in range(n)]
total = n
x -= sum(ing)
total += (x//min(ing))
print(total)
すべての種類のドーナツを絶対一個は作らないといけないので、totalの初期値をドーナツの種類と同じ数にして、xから全てのドーナツを一個ずつ作るのに必要な材料を引く。そして材料が一番少ないドーナツを作りまくる!
B - Maximum Sum
https://atcoder.jp/contests/abc096/tasks/abc096_bnumbers = list(map(int, input().split()))
k = int(input())
d = max(numbers)
numbers.remove(max(numbers))
for i in range(k):
d *= 2
numbers.append(d)
print(sum(numbers))
一番をでかい数を操作できる回数2倍し続ければいいだけです、コードが不細工すぎる...