描述:就是性价比问题,谁的性价比高谁就优先,如果一样,就按照工作的顺序优先
#include <cstdio>
#include <cstdlib>
#include <cstring>
int cmp(const void *p1,const void *p2)
{
if(((int *)p1)[1]*((int *)p2)[0]>((int *)p1)[0]*((int *)p2)[1]) return 1;
else if((((int *)p1)[1]*((int *)p2)[0]==((int *)p1)[0]*((int *)p2)[1]))
{
if(((int *)p1)[2]<((int *)p2)[2]) return 1;
else return 0;
}
else return 0;
}
int num[1010][3];
int main()
{
// freopen("a.txt","r",stdin);
int n,m;
scanf("%d",&n);
while(n--)
{
scanf("%d",&m);
for(int i=0; i<m; i++)
{
scanf("%d%d",&num[i][0],&num[i][1]);
num[i][2]=i+1;
}
qsort(num,m,sizeof(num[0]),cmp);
printf("%d",num[m-1][2]);
for(int i=m-2; i>=0; i--) printf(" %d",num[i][2]);
printf("\n");
if(n) printf("\n");
}
return 0;
}
10026 - Shoemaker's Problem
最新推荐文章于 2015-09-14 19:51:25 发布