链接:点击打开链接
题意:Ignatius买牛奶,有四个要求:
1.不会喝生产日期超过六天的牛奶,假如生产期1月1日,1月6日他将不会喝
2.每天喝200ml
3.如果牛奶剩下的少于200,将扔掉
4.在超市的牛奶都是今天生产的
现在Ignatius将买一瓶牛奶,求买那种牛奶更便宜。
思路:根据每天的花费排序,若每天的花费相同,则选择容量大的。
代码:
#include<iostream>
#include<math.h>
#include<string>
#include<algorithm>
using namespace std;
#define inf 0x3ffffff
struct node
{
string name;
int p,v;
double t;//每天的价格
}a[100000];
bool cmp(node x,node y)
{
if(x.t!=y.t) return x.t<y.t;
else return x.v>y.v;
}
int main()
{
int num;
cin>>num;
while(num--)
{
int n;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>a[i].name>>a[i].p>>a[i].v;
if(a[i].v<200)
a[i].t=inf;
else if(a[i].v>1000)//能喝5天
a[i].t=a[i].p*1.0/5;
else
a[i].t=a[i].p*1.0/(a[i].v/200);//喝不满五天
}
sort(a,a+n,cmp);
cout<<a[0].name<<endl;
}
}