はじめに
忘れてて参加できなかったので解く。深夜テンションで解いた + 深夜に書いてるので、文が崩壊しているかもです。
A問題
考えたこと
Sの中にあるA,Bを数えればいい。全てA,Bであるときだけ、Noにすればいい。。str.countでカウントしてifにつっこんだ。
s = str(input())
station_a = s.count('A')
station_b = s.count('B')
if station_a != 3 and station_b != 3:
print('Yes')
else:
print('No')
B問題
考えかた
A+Bの組がNに何個あるかを数えればよい。$A+Bの組の数*A$だけでは、余りの個数を含んでいません。ですので$N % (A + B)$で余りを計算してそれを足します。と思ったら余りが、Aよりも大きくなる場合もあるのでmin(a,(n % (a + b)))を足してます。
n, a, b =map(int,input().split())
p = n // (a + b)
ans = a * p + min(a,(n % (a + b)))
print(ans)
C問題
問題
1WA
考えたこと
普通に計算しました。1WA出た理由は、for文のstopを1001ではなくて1000としたからです。このせいで、どちらかが答えが1000になるケースに対応できませんでした。みんなもforのstopには気を付けよう。
<追記>丸めると1009*0.10も100になるので、1010にしないといけない
import math
a, b = map(int,input().split())
ans = []
for i in range(1010): #ここを1000にしてた
price_8 = math.floor(i * 0.08)
price_10 = math.floor(i * 0.1)
if price_8 == a and price_10 == b:
ans.append(i)
if len(ans) != 0:
print(min(ans))
else:
print(-1)
まとめ
簡単なABCくらいなら深夜にでも解けることが分かった。おやすみなさい