题目:http://acm.hdu.edu.cn/showproblem.php?pid=1070
Ignatius每天喝200mL奶,现在给许多牛奶的牌子,价格,分量,牛奶最多喝5天,及超过1000ML的当做1000ML算。
少于200L的不算。计算最省钱的。
思路:简单模拟
计算出每个牛奶能喝的天数,拿价格除以天数就是单价。注意OUTPUT里写了If there are more than one cheapest brand, you should output the one which has the largest volume.
单价一样时,选取量多的。
#include<iostream>
#include<string>
using namespace std;
#define MN 1000000000
int main()
{
int T;
cin >> T;
while (T--)
{
string ss[105]; int p[105]; int v[105]; double sum[105] = { 0 };
int N,day,i,min=0;
cin >> N;
for (i = 0; i < N; i++)
{
cin >> ss[i] >> p[i] >> v[i];
if (v[i] < 200)
sum[i] = MN;
else if (v[i] > 1000)
sum[i] = p[i] / 5;
else
{
day = v[i] / 200;
sum[i] = p[i] / day;
}
}
for (i = 0; i < N; i++)
{
if ((sum[i] < sum[min])|| (sum[i] == sum[min] && v[i] > v[min]))
min = i;
}
cout << ss[min] << endl;
}
return 0;
}