AtCoder ABC158
AtCoder ABC158解いた分だけまとめ。
レート大爆死。30戻ってしまった。
B問題で答え合わなくてそのまま終わった...かなしい
B以降は大会後AC。
目次
A. Station and Bus
入力を見て全部同じ文字だったらバスはいらないので、Noになる。
入力をリストにしてsetで重複削除してリストの長さで判定した。
ACしたコード
#coding:utf-8 s = input() l = [] for i in s: l.append(i) s_len = set(l) if len(s_len) == 2: print('Yes') else: print('No')
B. Count Balls
ボールの個数について、a,bともに0があり得ることを見落とした。
ボールは必ず青→赤の順場なので、青a個と赤b個を1セットとして、
n番目に従って端数を求める。ボールは青しか考えないので、
端数は青ボールの個数か、nを(a+b)で割った余りのうち小さい方になる。
ACしたコード
#coding:utf-8 n, a, b = map(int, input().split()) if a == 0 and b == 0: print(0) exit() count = n // (a+b) mod = n % (a+b) ans = a * count + min(mod, a) print(ans)
C. Tax Increase
よく考えたらa,bともに高々100以下で、安い方を求めるので、
元の税込み価格はどう頑張っても1008円までにしかならない。
1円から1008円まで順に探索して、8%でも10%でも条件成立する価格を探す。
ACしたコード
#coding:utf-8 import math a, b = map(int, input().split()) ans = -1 #1<= a < b <= 100 なので、税込み価格は最大でも1008円 for price in range(1, 1009): if math.floor(price * 0.08) == a and math.floor(price * 0.1) == b: ans = price break print(ans)
次は焦らずがんばろ...