社区讨论

关于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 条回复,欢迎继续交流。

正在加载回复...