为什么会出现Segmentation Fault
如何解决 求助大佬
#include<bits/stdc++.h>
using namespace std;
int n,m,r;
int s[200010],w[200010],p[200010],p0[200010],p1[200010];
bool cmp(int a,int b){
if(s[a]!=s[b])return s[a]>s[b];
return a<b;
}
int main(){
cin>>n>>m>>r;
for(int i=0;i<2*n;i++)cin>>s[i];
for(int i=0;i<2*n;i++)cin>>w[i];
for(int i=0;i<2*n;i++)p[i]=i;
sort(p,p+2*n,cmp);
while(m--){
int x=0,y=0;
for(int i=0;i<n*2;i+=2)
{
if(w[p[i]]<w[p[i+1]]){
s[p[i+1]]++;
p0[x++]=p[i];
p1[y++]=p[i+1];
}
else{
s[p[i]]++;
p0[x++]=p[i+1];
p1[y++]=p[i];
}
}
int i=0,j=0,k=0;
while(i<x&&j<y){
if(cmp(p0[i],p1[j]))p[k++]=p0[i++];
else p[k++]=p1[j++];
}
while(i<x)p[k++]=p0[i];
while(j<y)p[k++]=p1[j];
}
cout<<p[r-1]+1;
return 0;
}