10026 - Shoemaker's Problem

来源:互联网 发布:linux 找不到命令 编辑:程序博客网 时间:2024/04/19 12:48
描述:就是性价比问题,谁的性价比高谁就优先,如果一样,就按照工作的顺序优先#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;}

原创粉丝点击