AtCoder Beginner Contest (ABC) 194 A,B問題解いてみた
C問題はこちら
前回解いたやつ
こんばんはメリーです。
今日はバイトで疲れたので2問ほどにします。
C問題は自力でやったのはTLEになったので、明日消化してから記事にする予定です。
目次
[:コンテンツ]
A問題
皆さん大好きアイスの問題です。
夏場にはピッタリですね!
自分の地元の北海道だと、乳脂肪分多めの「アイスクリーム」が割と安く美味しく売ってるのでおすすめです。
↓こんなの
問題の話ですね、はい。
乳固形分 → 無脂乳固形分(A)+乳脂肪分(B)
となり、乳固形分と乳脂肪分の%でどの種類のアイス製品化が決まる、というわけです。
というのを素直に場合分けしたのが以下のコードです。
a,b = map(int,input().split())
if a+b >= 15 and b >= 8:
print(1)
elif a+b >= 10 and b >= 3:
print(2)
elif a+b >= 3:
print(3)
else:
print(4)
問題B
従業員に仕事を割り当てるプログラムですね。
まだB問題なので素直に全探索したら解けますね。
Nが1000以下なので二重ループで回しても10^6程度ですね。
(計算間違ってたら恥ずかしい。)
二重ループを回している間に考えることは1つ。
それは仕事を行うのが同一人物か否か、ということ。
- 同一人物の場合
仕事にかかる時間はその人物のA+Bとなります。
- 同一人物でない場合
仕事にかかる時間はAとBの多い方の時間となります。
ということを念頭に置きつつ、書いたのが以下のコード
n = int(input())
staff =
for i in range(n):
a,b = map(int,input().split())
staff.append([a,b])
ans =
for i in range(n):
for j in range(n):
if i == j:
ans.append(staff[i][0]+staff[j][1])
else:
ans.append(max(staff[i][0],staff[j][1]))
print(min(ans))
C問題はまた明日記事あげる予定です。
あげました。これ
では!