poj 3664
http://poj.org/problem?id=3664
进行两轮选举,第一轮选前n进入第二轮,第二轮选最高
#include<algorithm> #include<cstdio> using namespace std; struct vote { int a,b; int c; }; bool cmp1(const vote & a ,const vote & b) { return a.a>b.a; } bool cmp( const vote& a ,const vote& b) { return a.b>b.b; } int main() { int n,k; scanf("%d%d",&n,&k); vote aa[50010]; for(int i=0;i<n;i++) { aa[i].c=0; scanf("%d%d",&aa[i].a,&aa[i].b); aa[i].c=i+1; } sort(aa,aa+n,cmp1); sort(aa,aa+k,cmp); printf("%d\n",aa[0].c); return 0; }