杭电1871

来源:互联网 发布:淘宝安装师傅在哪接单 编辑:程序博客网 时间:2024/06/06 18:32

这题一开始我看到这题时也是蒙的,参考了大牛的代码!发现也不是好难!就是用到结构体!

#include<iostream>
#include<algorithm>
using namespace std;
struct hotel
{
    int num;
    int price;
    int room_num;
};
bool cmp(hotel a,hotel b)
{
    if(a.price!=b.price)//这里先按价格排序
        return a.price<b.price;
    else if(a.room_num!=b.room_num)//按房间里容纳的人数排序
        return a.room_num<b.room_num;
    else
        return a.num<b.num;//按房间号码排序
}
int main()
{
    hotel a[205];
    int i,t,c,T,n;
    cin>>T;
    while(T--)
    {
        cin>>c;
        for(i=0;i<c;i++)
            cin>>a[i].num>>a[i].room_num>>a[i].price;
        sort(a,a+c,cmp);
        cin>>t;
        while(t--)
        {
            cin>>n;
            for(i=0;i<c;i++)
            {
                if(a[i].room_num>=n)
                {
                    a[i].room_num-=n;
                    cout<<a[i].num<<endl;
                    break;
                }
                if(i==c-1)//这里就是进行判断,看人数是否超出总容纳的人数
                {
                    cout<<"sorry"<<endl;
                }
            }
        }
//return 0;
    }
    return 0;
}

原创粉丝点击