NO IMAGE

買鉛筆


題目描述

P老師需要去商店買n支鉛筆作為小朋友們參加NOIP的禮物。她發現商店一共有 3種包裝的鉛筆,不同包裝內的鉛筆數量有可能不同,價格也有可能不同。為了公平起 見,P老師決定只買同一種包裝的鉛筆。

商店不允許將鉛筆的包裝拆開,因此P老師可能需要購買超過n支鉛筆才夠給小朋 友們發禮物。

現在P老師想知道,在商店每種包裝的數量都足夠的情況下,要買夠至少n支鉛筆*最少*需要花費多少錢。

輸入輸出格式

輸入格式:

輸入的第一行包含一個正整數n,表示需要的鉛筆數量。

接下來三行,每行用兩個正整數描述一種包裝的鉛筆:其中第一個整數表示這種 包裝內鉛筆的數量,第二個整數表示這種包裝的價格。

保證所有的7個數都是不超過10000的正整數。

輸出格式:

輸出一行一個整數,表示P老師最少需要花費的錢。

輸入輸出樣例

輸入樣例#1:

57
2 2
50 30
30 27
輸出樣例#1:

54
輸入樣例#2:

9998
128 233
128 2333
128 666
輸出樣例#2:

18407
輸入樣例#3:

9999
101 1111
1 9999
1111 9999
輸出樣例#3:

89991

說明

鉛筆的三種包裝分別是:

•2支裝,價格為2;

•50支裝,價格為30;

•30支裝,價格為27。

P老師需要購買至少57支鉛筆。

如果她選擇購買第一種包裝,那麼她需要購買29份,共計2×29 = 58支,需要花 費的錢為2×29 = 58。

實際上,P老師會選擇購買第三種包裝,這樣需要買2份。雖然最後買到的鉛筆數 量更多了,為30×2 = 60支,但花費卻減少為27 x2 = 54,比第一種少。

對於第二種包裝,雖然每支鉛筆的價格是最低的,但要夠發必須買2份,實際的 花費達到了 30 x 2 = 60,因此P老師也不會選擇。

所以最後輸出的答案是54。

【子任務】

子任務會給出部分測試資料的特點。如果你在解決題目中遇到了困難,可以嘗試 只解決一部分測試資料。

每個測試點的資料規模及特點如下表:

上表中“整倍數”的意義為:若為“K”,表示對應資料所需要的鉛筆數量n—定是每 種包裝鉛筆數量的整倍數(這意味著一定可以不用多買鉛筆)。

這是一道很水的水題,只需依次計算每一種鉛筆要花的錢,就可以了。

詳見程式碼:

#include<cstdio>
#include<iostream>
#include<cmath>
#include<cstring>
#include<string>
#include<algorithm>
#include<functional>
#include<queue>
#include<stack>
#include<set>
#include<map>
#include<vector>
using namespace std;
int price_c[6][6];
int ans=2000000000,n,need_to,paid;
//ans=2147483647
int main()
{
freopen("pencil.in","r",stdin);
freopen("pencil.out","w",stdout);
scanf("%d",&n);
for(int i=1;i<=3;i  )
{
scanf("%d %d",&price_c[i][1],&price_c[i][2]);
need_to=n/price_c[i][1];
if(need_to*price_c[i][1]!=n) need_to  ;
paid=need_to*price_c[i][2];
if(ans>paid) ans=paid;
}
printf("%d",ans);
return 0;
}