贴代码:
#include<iostream>
#include<algorithm>
using namespace std;
struct node{
int m,s,b;
}a[200005];
bool cmp(node x,node y){
if(x.s != y.s )return x.s >y.s ;
return x.b<y.b;
}
int main(){
int n,r,q;
cin>>n>>r>>q;
for(int i=1;i<=n*2;i++){
cin>>a[i].s;
a[i].b=i;
}
for(int i=1;i<=n*2;i++){
cin>>a[i].m;
}
for(int i=1;i<=r;i++){
sort(a+1,a+1+n*2,cmp);
for(int i=1;i<=n;i++){
if(a[i*2-1].m>=a[i*2].m) a[i*2-1].s++;
else a[i*2].s++;
}
}
sort(a+1,a+1+n*2,cmp);
cout<<a[q].b;
return 0;
}
求助如何优化时间复杂度。