解题报告:题意就是牛的淘汰赛,规则有两轮,再第一轮中选出前k个牛,再在这k只牛中选取第二轮中票数最多的牛,输出它的编号,进行两次排序就行!
/* * POJ_3667.cpp * * Created on: 2013年11月26日 * Author: Administrator */ #include <iostream> #include <cstdio> #include <algorithm> using namespace std; const int maxn = 50005; struct cow{ int v1; int v2; int id; }c[maxn]; bool cmp1(const cow& a,const cow& b){ return a.v1 > b.v1; } bool cmp2(const cow& a,const cow& b){ return a.v2 > b.v2; } int main(){ int n,k; while(scanf("%d%d",&n,&k)!=EOF){ int i; for(i = 1 ; i <= n ; ++i){ scanf("%d%d",&c[i].v1,&c[i].v2); c[i].id = i; } sort(c+1,c+1+n,cmp1); sort(c+1,c+1+k,cmp2); printf("%d\n",c[1].id); } return 0; }