mery's Notes

めりーがプログラミングしたりします。

MENU

AtCoder Beginner Contest (ABC) 194 A,B問題解いてみた

C問題はこちら

 

mery-kirokudayo.hateblo.jp

 

前回解いたやつ

 

mery-kirokudayo.hateblo.jp

 

f:id:mery_poke:20211101230310p:plain

 

こんばんはメリーです。

 

今日はバイトで疲れたので2問ほどにします。

 

C問題は自力でやったのはTLEになったので、明日消化してから記事にする予定です。

 

目次

[:コンテンツ]

 

 

A問題

A-私は悲鳴を上げる

 

皆さん大好きアイスの問題です。

夏場にはピッタリですね!

 

自分の地元の北海道だと、乳脂肪分多めの「アイスクリーム」が割と安く美味しく売ってるのでおすすめです。

 

↓こんなの

日世 ソフトミックス 北海道ソフトクリーム 1ℓ×12本

日世 ソフトミックス 北海道ソフトクリーム 1ℓ×12本

  • 日世ソフトミックス北海道ソフトクリーム
アマゾン

 

 

 

閑話休題

 

 

問題の話ですね、はい。

 

乳固形分 → 無脂乳固形分(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 - Job Assignment

 

従業員に仕事を割り当てるプログラムですね。

まだ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問題はまた明日記事あげる予定です。

あげました。これ

 

mery-kirokudayo.hateblo.jp

 

では!