ebisukeプログラミング初心者脱出黙示録

30歳を過ぎてから始めたプログラミングと競プロの記録。Pythonで取り組んでいます。Arduinoで電子工作も

AtCoder-ABC214 A - New Generation ABC / B - How many?【Python解答例】

f:id:ebisuke33:20210815133919p:plain

AtCoder Beginner Contest214のA とB問題についてPythonの解答例を記事にしていきます。
AtCoder Beginner Contest 214 - AtCoder


AtCoder Beginner Contest214 A - New Generation ABC

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?

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