```cpp
#include<bits/stdc++.h>
using namespace std;
const int N = 2e5+10;
struct pl{
int score ,power,id;
};
bool cmp(const pl &a,const pl &b){
if(a.score != b.score) return a.score > b.score;
return a.id < b.id;
}
pl arr[N],win[N/2],lose[N/2];
int main()
{
int n,r,p;
cin >> n >> r >> p;
for(int i = 1;i <= 2*n;++i)
cin >> arr[i].score;
for(int i = 1;i <= 2*n;++i)
{
cin >> arr[i].power;
arr[i].id = i;
}
sort(arr + 1,arr + 2*n+1,cmp);
while(r--)
{
int pos = 1;
for(int i = 1;i <= 2*n;i+=2){
if(arr[i].power > arr[i+1].power){
arr[i].score++;
win[pos] = arr[i];
lose[pos] = arr[i+1];
pos++;
}
else{
arr[i+1].score++;
win[pos] = arr[i+1];
lose[pos] = arr[i];
pos++;
}
}
int l =1,r=1,k=1;
while(l <= n&& r <= n){
if(cmp(win[l],lose[r])) arr[k++] = win[l++];
else arr[k++] = lose[r++];
}
while(l <= n) arr[k++]= win[l++];
while(r <= n) arr[k++]= lose[r++];
}
cout <<arr[p].id << endl;
return 0;
}
```
by jasonxue2012 @ 2023-09-05 23:13:11