AtCoder-ABC214 A - New Generation ABC / B - How many?【Python解答例】
AtCoder Beginner Contest214のA とB問題についてPythonの解答例を記事にしていきます。
AtCoder Beginner Contest 214 - AtCoder
AtCoder Beginner Contest214 A - New Generation ABC
問題文
AtCoder Beginner Contest は、今回で 214 回目の開催となりました。
今までの AtCoder Beginner Contest において、出題される問題数は次のように変化しました。
・1 回目から 125 回目までは 4 問
・126 回目から 211 回目までは 6 問
・212 回目から 214 回目までは 8 問
N 回目の AtCoder Beginner Contest において出題された問題数を求めてください。
制約
・1 ≤ N ≤ 214
・入力は全て整数である。
解答例
n = int(input()) if 1 <= n <= 125: print(4) elif 126 <= n <= 211: print(6) else: print(8)
解説
N回目のコンテストの出題数を答える問題です。
与えられたN回目がどの期間に該当するか条件分けを行い、該当する期間の出題数を出力すればOKです。
AtCoder Beginner Contest214 B - How many?
問題文
a + b + c ≤ S かつ a × b × c ≤ T を満たす非負整数の組 ( a , b , c ) はいくつありますか?
制約
・0≤S≤100
・0≤T≤10000
・S,T は整数である。
解答例
s, t = map(int,input().split()) ans = 0 for i in range(s+1): for j in range(s-i+1): for k in range(s-i-j+1): if i*j*k <= t: ans += 1 print(ans)
解説
問題の条件を満たすa, b, c の組み合わせの数を求める問題です。
a + b + c <= 100という制約があるので100までの値で全探索します。
a が i のとき、b は S - i + 1 、c は S - i -j +1の3重ループで探索するとa + b + c <= 100の制約を満たします。
その i , j , k のときにi * j * k <= T であれば、答えのansに1を足します。
ループを抜けたあとにansを出力すればACでした。
ABC214の関連記事はこちら
ebisuke33.hatenablog.com