牛奶

牛奶

时间限制: 1000 ms  |  内存限制: 65535 KB
难度: 2
描述
伊格内修斯每天都喝牛奶,他现在是在超市里,他要选择一瓶牛奶。牛奶在超市有很多种,所以伊格内修斯想知道哪种牛奶是最便宜的。

下面是一些规则:
1。伊格内修斯绝不会喝6天以前或更早的牛奶。这意味着,如果牛奶是2012-12-22生产的,伊格内修斯绝不会在2012年12月27日之后(包含12月27日)喝这瓶。
2。伊格内修斯每天要喝200毫升牛奶。
3。如果留在瓶子里的牛奶不到200毫升,伊格内修斯把它扔掉。
4。所有的在超市的牛奶都是今天刚生产出来的。

请注意,伊格内修斯只想要买一瓶牛奶,因此,如果一个瓶子的容积小于200毫升,你应该忽略它。
给你牛奶的一些信息,你的任务是告诉伊格内修斯牛奶是最便宜的。
输入
有多组测试数据
每组测试数据以一个整数N(1<=N<=100)开始,表示有N种牛奶。
以下N行,每行包含一个字符串S(长度最多100个字符),它表示该牛奶的品牌,然后是两个整数P(yuan)和V(ml),P是这瓶牛奶的价格,V是这瓶牛奶的体积。
输出
对于每个测试样例,你应该输出最便宜的牛奶的品牌。如果有超过一个最便宜的品牌,你应该输出体积最大的一个。
样例输入
2
Yili 10 500
Mengniu 20 1000
4
Yili 10 500
Mengniu 20 1000
Guangming 1 199
Yanpai 40 10000
样例输出
Mengniu

Mengniu

代码实现:

#include<stdio.h>
struct milk
{
char name[102];
int price;
int ml;
double unit;
}s[102];
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
for(int i=0;i<n;i++)
{
scanf("%s%d%d",&s[i].name,&s[i].price,&s[i].ml);
//若ml>1000,则需要喝至少6天 
if(s[i].ml>1000)
s[i].unit=s[i].price/5.0;
else
s[i].unit=(s[i].price*1.0)/(s[i].ml/200);

}
int flag=0;
//相当于哨兵 
double min=s[0].unit;
for(int i=1;i<n;i++)
{
if(s[i].unit<min)
{
min=s[i].unit;
flag=i;
}
else if (s[i].unit==min)
{
if(s[i].ml>s[flag].ml)
flag=i;
}
}
printf("%s\n",s[flag].name);
}
return 0;
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值