3441 - 节衣缩食

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 128 MB

题目背景:
蛋蛋和宝宝梦想有一台四轴飞行器,可是航模的成本很高,蛋蛋和宝宝只能从生活费里面省钱来实现梦想了。食堂的食品价格有贵有贱,请你帮他们选择一个最省钱的吃饭方案把!
题目描述:
北苑食堂菜品有大份和小份之分,大份的菜可以两个人吃饱,小份的菜只能一个人吃饱。
为了方便他们自己筛选,请先将食堂的菜品按价格由低到高排列,输出,之后请帮他们选一份最省钱的吃饭方案。

题目输入

输入格式:

输入共一组,以一个整数N开头。
数据包括N种菜品,输入格式为食物名称+食物价格+份量。约定1为大份,0为小份。

<br />

食物名长度<=50

食物价格为一个浮点数

保证每种食物的价格不同

题目输出

先将菜品分按价格升序换行输出,然后换行输出最便宜的菜。

输入/输出样例

输入格式

5
Seedcake 2.6 0
Omelet 1.5 0
Noodles 5 1
EggNoodles 7 0
Bread 4 1

输出格式

Omelet
Bread
Noodles
Seedcake
EggNoodles

Omelet

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;
}