这题一开始我看到这题时也是蒙的,参考了大牛的代码!发现也不是好难!就是用到结构体!
#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;
}