瑞士轮

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
struct aa{
    int id,s,scar;
}a[200020];
int n,r,q;
bool cmp(aa a,aa b){
   if(a.scar==b.scar){
        return a.id<b.id;
   }
   else return a.scar>b.scar;
}
int main()
{
    scanf("%d %d %d",&n,&r,&q);
    for(int i=1;i<=2*n;i++){
        scanf("%d",&a[i].scar);
        a[i].id=i;
    }
    for(int i=1;i<=2*n;i++){
        scanf("%d",&a[i].s);
    }
    sort(a+1,a+1+2*n,cmp);
    while(r>0){
        int i=1;
        while(i<=2*n-1){
            if(a[i].s<a[i+1].s){
                a[i+1].scar++;
            }
            else if(a[i].s>a[i+1].s){
                a[i].scar++;
            }
            i+=2;
        }
        sort(a+1,a+1+2*n,cmp);
        r--;
    }
    sort(a+1,a+1+2*n,cmp);
    printf("%d",a[q].id);
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_39657982/article/details/80736475
今日推荐