题解 P1309 【瑞士轮】
Tomone
2018-02-28 00:21:01
```cpp
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
struct mr{
int chu; //分数
int sl; //能力
int id; //号
}a[200001];
int n,r,q;
bool cmp(mr x,mr y){
return x.chu==y.chu ? x.id<y.id : x.chu>y.chu;
}
int main(){
int w;
cin>>n>>r>>q;
for(int i=1;i<=2*n;++i){
cin>>a[i].chu;
a[i].id=i;
}
for(int i=1;i<=2*n;++i)
cin>>a[i].sl;
sort(a+1,a+1+2*n,cmp); //这个地方排序一定是2*n 坑死我了、
for(int i=1;i<=r;++i){ //比赛次数
for(int j=1;j<2*n;j+=2){
w=j+1;
if(a[j].sl>a[w].sl) a[j].chu++;
if(a[j].sl<a[w].sl) a[w].chu++;
}
sort(a+1,a+1+2*n,cmp); //这个地方排序一定是2*n 坑死我了、
}
cout<<a[q].id<<endl;;
}
```
蒟蒻的博客:www.aptx.xin