题目描述
P需要去商店买n支铅笔作为小朋友们参加NOIP的礼物。她发现商店一共有 33种包装的铅笔,不同包装内的铅笔数量有可能不同,价格也有可能不同。为了公平起 见,P决定只买同一种包装的铅笔。
商店不允许将铅笔的包装拆开,因此P可能需要购买超过nn支铅笔才够给小朋 友们发礼物。
现在P想知道,在商店每种包装的数量都足够的情况下,要买够至少nn支铅笔最少需要花费多少钱。
输入格式
第一行包含一个正整数nn,表示需要的铅笔数量。
接下来三行,每行用22个正整数描述一种包装的铅笔:其中第11个整数表示这种 包装内铅笔的数量,第22个整数表示这种包装的价格。
保证所有的77个数都是不超过1000010000的正整数。
输出格式
11个整数,表示P最少需要花费的钱。
输入:
57
2 2
50 30
30 27
输出:
54
#include<iostream>
#include<math.h>
using namespace std;
int main() {
int need, pencle, price, spend, min = 99999;
//输入需要的铅笔数量
cin >> need;
if (need > 10000 )
{
cout << "错误" << endl;
exit(1);
}
//循环输入3种不同包装铅笔一包得数量和价格
for (int i = 1;i < 4;i++)
{
cin >> pencle >> price;
//如果七个数字任意一个大于10000就报错
if (pencle > 10000 || price > 10000 || need < 1 || pencle < 1 || price < 1)
{
cout << "错误" << endl;
exit(1);
}
//计算每一种规格得铅笔所需价格
if (need%pencle == 0)
{
spend = need / pencle * price;
}
else
{
spend = (need / pencle + 1) * price;
}
//找出最小得花费,如果出现更小值就覆盖之前的min
if (min > spend)
{
min = spend;
}
}
//输出最小的花费值
cout << min << endl;
system("pause");
return 0;
}