这是怎么回事,在第六个点RE
查看原帖
这是怎么回事,在第六个点RE
267413
嫐嬲巭孬楼主2020/4/29 13:52
#include<bits/stdc++.h>
using namespace std;
inline int read(){
   int s=0,w=1;
   char ch=getchar();
   while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}
   while(ch>='0'&&ch<='9') s=s*10+ch-'0',ch=getchar();
   return s*w;
}
int a[200002],b[200002],c[200002];
int res[200002],ans;
bool cmp(int aa,int bb){
	if(a[aa]>=a[bb])return 1;	
	return 0;
}
int main(){
	int n;cin>>n;
	for(int i=0;i<n;i++){
	 	a[i]=read(); 
	}
	for(int i=0;i<n;++i){
		b[i]=read();
	}
	for(int i=0;i<n;i++)c[i]=i;
	sort(c,c+n,cmp);
//	for(int i=0;i<n;i++)cout<<c[i]<<" ";
	if(!n%2){
		ans++,res[0]=--n;
	}
	res[ans++]=c[0];
	for(int i=1;i<n;i+=2){
		int an=0;
		if(b[c[i]]>b[c[i+1]])an=c[i];
		else an=c[i+1];
		res[ans++]=an;
	}
	cout<<ans<<endl;
	for(int i=0;i<ans;i++)cout<<res[i]+1<<" ";
}

RT,但去掉第13行的等于号就可以了,为什么啊啊啊

2020/4/29 13:52
加载中...