2020年4月6日 星期一

[C_MM214-易] 賣麵包

[C_MM214-易] 賣麵包

成績: 0 / 倒扣: 0.8

問題描述 :
小明在麵包店打工,而店裡裝麵包的盒子有兩種分別為大盒子與小盒子。今天早上小明在收銀台幫客人結帳的時候,他突然想到一個問題:今天師傅烤了若干個麵包,並用數個大盒子與小盒子裝起來(每個盒子都有裝滿麵包),假設我們已經知道麵包的總數量以及總共用了多少個盒子,你是否可幫小明計算出裝這些麵包分別使用了多少個大盒子以及小盒子?

輸入說明 :
第一行為一個正整數N,代表共有N筆測資,接下來有N行。每筆測資有四個整數A,B,C,D(100≤A≤10000,100≤B≤10000,1≤C,D≤10000),分別代表麵包總數量,總共使用的盒子個數,一個小盒子最多可裝的麵包數,以及一個大盒子最多可裝的麵包數。每個整數之間以一個空格隔開。

輸出說明 :
每筆測資輸出兩個整數,分別為使用的小盒子個數以及大盒子個數,兩個整數間以空格隔開。每筆測資輸出於一行。

範例 :

輸入範例輸出範例
2
100 20 5 10
1000 127 7 10
20 0
90 37

while True: # 這題要算出最少用了幾個盒子,所以大盒子先用
    try:
        N = int(input())
        for i in range(N):
            data = list(map(int,input().split())) # data[0]麵 data[1]盒 data[2]小 data[3]大
            for j in reversed(range(data[1]+1)): # 先全部用大盒,依次遞減…大盒量+小盒量=麵包
                if j*data[3] + (data[1]-j)*data[2] == data[0]:
                    break
            print('%d %d' % (data[1]-j, j))
    except(EOFError):
        break

沒有留言:

張貼留言