rt
#include <iostream>
#include <algorithm>
using namespace std;
typedef long long ll;
const ll MAXN = 200015;
ll a[MAXN], win[MAXN], los[MAXN], s[MAXN], w[MAXN];
ll n, r, q;
bool cmp(ll x, ll y){
if(x != y)return s[x] > s[y];
return x < y;
}
void merge(){
ll l = 1, r = 1;
a[0] = 0;
while(l <= win[0] && r <= los[0]){
if(cmp(win[l], los[r])){
a[++a[0]] = win[l ++];
}else{
a[++a[0]] = los[r ++];
}
}
while(l <= win[0]) a[++a[0]] = win[l ++];
while(r <= los[0]) a[++a[0]] = los[r ++];
/* for(int i = 1; i <= n; i ++){
cout << a[i] << " ";
}
cout << "\n";*/
}
int main(){
cin >> n >> r >> q;
n *= 2;
for(ll i = 1; i <= n; i ++){
cin >> s[i];
a[i] = i;
}
for(ll i = 1; i <= n; i ++) cin >> w[i];
sort(a + 1, a + 1 + n, cmp);
/* for(ll i = 1; i <= n; i ++){
cout << a[i] << " ";
}
cout << "\n";*/
for(int i = 1; i <= r; i ++){
win[0] = los[0] = 0;
for(ll j = 1; j <= n; j += 2){
if(w[a[j]] > w[a[j + 1]]){
s[a[j]] ++;
win[++win[0]] = a[j];
los[++los[0]] = a[j + 1];
}else{
s[a[j + 1]] ++;
win[++win[0]] = a[j + 1];
los[++los[0]] = a[j];
}
}
merge();
}
cout << a[q] << "\n";
return 0;
}
样例输出结果:4