注意一点:当一个小组选择好一个旅馆时,此旅馆的房间数要对应减去小组人数。。。
#include"stdio.h" #include"stdlib.h" struct fun { int num,count,price; }a[111]; int cmp(const void*a,const void *b) { struct fun *c,*d; c=(struct fun*)a; d=(struct fun*)b; return c->price-d->price; } int main() { int t; int n,i,flag,m,mm; int tt; scanf("%d",&t); while(t--) { scanf("%d",&n); for(i=0;i<n;i++) scanf("%d%d%d",&a[i].num,&a[i].count,&a[i].price); qsort(a,n,sizeof(a[0]),cmp); scanf("%d",&tt); while(tt--) { scanf("%d",&m); flag=0; for(i=0;i<n;i++) { if(a[i].count>=m) { flag=1;mm=a[i].num; a[i].count-=m; break; } } if(flag==0) printf("sorry\n"); else printf("%d\n",mm); } } return 0; }