In P1309 [NOIP2011 普及组] 瑞士轮
#include<bits/stdc++.h>
using namespace std;
struct node {
int s,w,id;
} a[200005];
bool cmp(node a,node b) {
if(a.s==b.s)
return a.id<b.id;
return a.s>b.s;
}
int main() {
int n,r,q;
cin>>n>>r>>q;
n*=2;
for(int i=1; i<=n; i++)
scanf("%d",&a[i].s);
for(int i=1; i<=n; i++)
scanf("%d",&a[i].w),a[i].id=i;
for(int d=1; d<=r; d++) {
sort(a+1,a+1+n,cmp);
for(int i=1; i<=n; i+=2) {
if(a[i].w>a[i+1].w)
a[i].s++;
else
a[i+1].s++;
}
}
sort(a+1,a+1+n,cmp);
cout<<a[q].id<<endl;
return 0;
}