POJ 3664

来源:互联网 发布:dreamweaver做淘宝分类 编辑:程序博客网 时间:2024/04/30 07:00

这道题目的意思就是,给你N头牛,先按第一列排序,(如果第一列有相同的,就按第二列排序),然后对前K头牛先按第二列排序,(如果有相同的,就按第一列排序),得到票数最高的这头牛在原来一开始的标号是多少!输出来代码如下:#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>const int maxn=50005;using namespace std;struct p{    int a;    int b;    int pos;}f[maxn];int cmp1(p x,p y){    if(x.a==y.a)    {        return x.b>y.b;    }    else    return x.a>y.a;}int cmp2(p x,p y){    if(x.b==y.b)    {        return x.a>y.a;    }    else        return x.b>y.b;}int main(){    int n,k;    int i;    while(scanf("%d%d",&n,&k)!=EOF)    {        for(i=1; i<=n; i++)        {            scanf("%d%d",&f[i].a,&f[i].b);            f[i].pos=i;        }        sort(f+1,f+n+1,cmp1);        sort(f+1,f+k+1,cmp2);        printf("%d\n",f[1].pos);    }    return 0;}


原创粉丝点击