nyoj642牛奶

来源:互联网 发布:无线有限制的网络连接 编辑:程序博客网 时间:2024/04/28 14:34

牛奶

时间限制: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是这瓶牛奶的体积。
输出
对于每个测试样例,你应该输出最便宜的牛奶的品牌。如果有超过一个最便宜的品牌,你应该输出体积最大的一个。
样例输入
2Yili 10 500Mengniu 20 10004Yili 10 500Mengniu 20 1000Guangming 1 199Yanpai 40 10000
样例输出
MengniuMengniu
代码://错误代码:
/*#include<stdio.h>#include<iostream>using namespace std;struct niu{char name[100];int p;int v;};struct niu s[100];struct niu temp;int main(){int j,i,n;while(scanf("%d",&n)!=EOF){for(i=0;i<n;i++)cin>>s[i].name>>s[i].p>>s[i].v;for(i=0;i<n-1;i++){for(j=0;j<n-i-1;j++){if(s[i].v>=200&&s[i].v<=12000){if(s[j].v<s[j+1].v){temp=s[j+1];s[j+1]=s[j];s[j]=temp;}if(s[j].v/s[j].p>s[j+1].v/s[j+1].p){temp=s[j+1];s[j+1]=s[j];s[j]=temp;}}}}printf("%s\n",s[0].name);}return 0;}*///大于1000的不应该忽略,体积应该按1000计算 //AC代码: #include<stdio.h>#include<string.h>#include<iostream>using namespace std;char ch[103],str[103];int main(){int n,i,max,a,b,d,m;while(scanf("%d",&n)!=EOF){max=0;for(i=0;i<n;i++){cin>>str>>a>>b;if(b<200)//体积小于200;continue;d=(b/200)*200;if(d>1000)d=1000;// 体积大于1000的,按1000算if(max<d/a){max=d/a;strcpy(ch,str);m=b;if(max==(d/a)&&m<b)// 如果价格都最便宜,则选择体积大的{strcpy(ch,str);m=b;}}cout<<ch<<endl;}return 0;}
0 0
原创粉丝点击