http://acm.hdu.edu.cn/showproblem.php?pid=1871
#include <stdio.h>
#include <algorithm>
#include <string.h>
using namespace std;
struct E
{
int no;
int num;
int price;
}buf[1000];
bool cmp(E A,E B)
{
return A.price<B.price;
}
int main()
{
int T,C,i,n; //T:样例,C旅馆数,n多少队伍
int no,num,price;
scanf("%d",&T);
while (T--)
{
scanf("%d",&C);
for (i=1;i<=C;i++)
{
scanf("%d%d%d",&buf[i].no,&buf[i].num,&buf[i].price);
}
sort(buf+1,buf+1+C,cmp);
scanf("%d",&n);
while (n--)
{
int peo;
int tag=0;
scanf("%d",&peo);
for (i=1;i<=C;i++)
{
if (peo<=buf[i].num)
{
printf("%d\n",buf[i].no);
buf[i].num-=peo;
tag=1;
break;
}
}
if (tag==0)
{
printf("sorry\n");
}
}
}
return 0;
}