牛奶
时间限制:
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
来源
- hdu
#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; struct node { char ma[20]; int v; double dan; }map[1000]; bool cmp(node a,node b) { if(a.dan==b.dan) { return a.v>b.v; } return a.dan<b.dan; } int main() { int n; while(scanf("%d",&n)!=EOF) { int i,j=0; for(i=0;i<n;i++) { char mm[20]; scanf("%s",mm); int aa,bb; double da; scanf("%d%d",&aa,&bb); if(bb>=200) { int tian; tian=bb/200; if(tian>=5) { tian=5; } da=(bb*1.0)/(aa*1.0); map[j].v=bb; strcpy(map[j].ma,mm); map[j].dan=(aa*1.0)/tian;//看看一天谁花的钱少 j++; } } sort(map,map+j,cmp); printf("%s\n",map[0].ma); } return 0; }
-
有多组测试数据