```cpp
#include <bits/stdc++.h>
using namespace std;
int n,r,q;
struct node{
int x,y,i;
} a[2000001];
node at[1000001]={},bt[1000001]={};
bool cmp (node x,node y) {return x.x>y.x||(x.x==y.x&&x.i<y.i);}
int main ()
{
cin>>n>>r>>q;
for (int i=1;i<=n*2;i++) cin>>a[i].x,a[i].i=i;
for (int i=1;i<=n*2;i++) cin>>a[i].y;
sort (a+1,a+n*2+1,cmp);
for (int i=1;i<=r;i++)
{
int as=0,bs=0;
for (int j=1;j<=n*2;j+=2)
if (a[j].y>a[j+1].y)
{
a[j].x++;
at[++as]=a[j];
bt[++bs]=a[j+1];
}else
{
a[j+1].x++;
at[++as]=a[j+1];
bt[++bs]=a[j];
}
int j=0, p1 = 1, p2 = 1;
while (p1 <= as && p2 <= bs)
if (cmp(at[p1], bt[p2]))
{
a[++j]=at[p1];
p1++;
}else
{
a[++j]=bt[p2];
p2++;
}
while (p1 <= as) a[++ j] = at[p1 ++];
while (p2 <= bs) a[++ j] = bt[p2 ++];
//for (int i=1;i<=n*2;i++) cout<<a[i].i<<' ';
//cout<<endl;
}
//for (int i=1;i<=n*2;i++) cout<<a[i].i<<' ';
cout<<a[q].i<<endl;
return 0;
}
```
by definieren @ 2023-11-05 10:58:49