社区讨论
关于Segmentation Fault
灌水区参与者 2已保存回复 5
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 5 条
- 当前快照
- 1 份
- 快照标识符
- @lo18j4ql
- 此快照首次捕获于
- 2023/10/22 16:56 2 年前
- 此快照最后确认于
- 2023/11/02 16:47 2 年前
为什么会出现Segmentation Fault
如何解决 求助大佬
CPP如何解决 求助大佬
#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;
}
回复
共 5 条回复,欢迎继续交流。
正在加载回复...