2完。
A問題
No.597 concat - yukicoder https://yukicoder.me/problems/no/597
文字列を連結する問題。
Pythonならjoinしてあげれば良いかなと。
print("".join([input()for _ in range(int(input()))]))
execを上手く使うと、少し短くなるみたい。
s="";exec('s+=input();'*int(input()));print(s)
B問題
No.598 オーバーフローファンタジー - yukicoder https://yukicoder.me/problems/no/598
回復させてオーバーフローさせるか、そのままダメージを与えるかして相手の体力を0以下にする問題。
ダメージを与える回数は、 ceil(x / a)
、回復させてオーバーフローする値は ceil([オーバーフローする桁 - x] / b>)
で求められるので、早い方を出力する。
import math def solve(): n, x, a, b = [int(input()) for _ in [0]*4] bits_list = [2 ** i for i in range(33)] overflag = bits_list[n - 1] ta = math.ceil(x / a) tb = math.ceil((overflag - x) / b) print(min(ta, tb)) if __name__=="__main__": solve()
C, Dはあまり良くわからなかったので、解いてないです。★2〜2.5をちょっと埋めようかな。