3441 - 节衣缩食
题目背景:
蛋蛋和宝宝梦想有一台四轴飞行器,可是航模的成本很高,蛋蛋和宝宝只能从生活费里面省钱来实现梦想了。食堂的食品价格有贵有贱,请你帮他们选择一个最省钱的吃饭方案把!
题目描述:
北苑食堂菜品有大份和小份之分,大份的菜可以两个人吃饱,小份的菜只能一个人吃饱。
为了方便他们自己筛选,请先将食堂的菜品按价格由低到高排列,输出,之后请帮他们选一份最省钱的吃饭方案。
Input
输入格式:
输入共一组,以一个整数N开头。
数据包括N种菜品,输入格式为食物名称+食物价格+份量。约定1为大份,0为小份。
<br />
食物名长度<=50
食物价格为一个浮点数
保证每种食物的价格不同
Output
先将菜品分按价格升序换行输出,然后换行输出最便宜的菜。
Examples
Input
5 Seedcake 2.6 0 Omelet 1.5 0 Noodles 5 1 EggNoodles 7 0 Bread 4 1
Output
Omelet Bread Noodles Seedcake EggNoodles Omelet
Solution C++
#include<iostream> #include<algorithm> using namespace std; struct cai { char name[50]; double price; int fl; }data[100]; bool cmp(cai a,cai b) { if(a.price<b.price) return true; return false; } int main() { int i,n; while(cin>>n) { for(i=0;i<n;i++) {cin>>data[i].name>>data[i].price>>data[i].fl; if(data[i].fl==0) data[i].price*=2; } sort(data,data+n,cmp); for(i=0;i<n;i++) cout<<data[i].name<<endl; cout<<endl<<data[0].name<<endl; } return 0; }