求求了,救救孩子的代码吧
查看原帖
求求了,救救孩子的代码吧
1099798
asdjfkl楼主2024/4/16 16:19

刚开始就抓狂的新手求助信,以下是我的代码

#include <iostream>
#include <algorithm>
using namespace std;

int n;
long long c[200005],d[200005];
long long e[200005];
struct node{
	long long sum;
	int num;
}b[200005],a[200005];

int cmp(const void* p1,const void* p2){
	return (((node*)p1)->sum-((node*)p2)->sum);
}

long long mi(long long a,long long b){
	if(a>b) return a;
	else return b;
}

int main(){
	cin>>n;
	for(int i=0;i<n+1;i++) cin>>a[i].sum,a[i].num=i;
	for(int i=0;i<n;i++) {
		cin>>b[i].sum;
		b[i].num=i;
	}
	qsort(a,(n+1),sizeof(a[0]),cmp);
	qsort(b,n,sizeof(b[0]),cmp);
	for(int i=0,j=n;i<n;i++,j--){
		if(i==0) {
			c[i]=mi(a[i].sum-b[i].sum,0);
			d[j]=mi(a[j].sum-b[j-1].sum,0);
		}
		else {
			c[i]=mi(a[i].sum-b[i].sum,c[i-1]);
			d[j]=mi(a[j].sum-b[j-1].sum,d[j+1]);
		}
//		for(int k=0;k<n+1;k++) cout<<c[k]<<" ";
//		cout<<endl;
//		for(int k=0;k<n+1;k++) cout<<d[k]<<" ";
//		cout<<endl;
	}
	for(int i=0;i<=n;i++) 
		e[a[i].num]=mi(c[i-1],d[i+1]);
	e[0]=d[1],e[n]=c[n-1];
	for(int i=0;i<n+1;i++) cout<<e[i]<<" ";
	return 0;
}

感觉已经能过了,但是只过了三个样例,其余的全部wa了,请问有大佬知道是为什么吗,求求了,救救孩子吧

2024/4/16 16:19
加载中...