题面 真的很模拟啊!不知道为什么错了,求教
#include<bits/stdc++.h>
using namespace std;
int n,r,q;
//typedef pair<int,int> PII;
//PII a[100005];
struct S{
int firs,secon,c;
};
S a[100005];
bool cmp(S a,S b){
return a.firs!=b.firs?a.firs>b.firs:a.c<b.c;
}
inline int read(){
int ret=0;
char ch=' ',c=getchar();
while(!('0'<=c&&c<='9')) ch=c,c=getchar();
while('0'<=c&&c<='9') ret=(ret<<1)+(ret<<3)+c-'0',c=getchar();
return ch=='-'?-ret:ret;
}
int main(){
n=read(),r=read(),q=read();
n*=2;
for(int i=1;i<=n;i++) a[i].firs=read(),a[i].c=i;//对初始分数进行读入,同步处理序号
for(int i=1;i<=n;i++) a[i].secon=read();//("%d",&a[i].secon);//读入能力
for(int t=1;t<=r;t++){
sort(a+1,a+n+1,cmp);
for(int i=1;i+1<=n;i+=2){
// printf("%d-%d\n",a[i].c,a[i+1].c);//debug
if(a[i].secon>a[i+1].secon) a[i].firs++;//处理分数
else a[i+1].firs++;
}
}
sort(a+1,a+n+1,cmp);//最后排序
cout<<a[q].c;
// for(int i=1;i<=n;i++) printf(" =%d %d",a[i].firs,a[i].c);//debug
return 0;
}