题解 P1309 【瑞士轮】

2018-02-28 00:21:01


#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