错了?
查看原帖
错了?
1023774
rui_de_aihao楼主2024/5/15 21:58

各位大佬们帮帮我吧!

#include <bits/stdc++.h>
using namespace std;
struct qwe {
	int c,id;
} a[1234];
int x[1234],y[1234];
int ans[1234];
int bi(qwe x,qwe y) {
	return x.c<y.c;
}
int main() {
	int n,i,j;
	scanf("%d",&n);
	for(i=1; i<=n; i++)
		scanf("%d",&x[i]);
	for(i=1; i<=n; i++) {
		scanf("%d",&y[i]);
		a[i].c=min(x[i],y[i]);
		a[i].id=i;
	}
	sort(a+1,a+1+n,bi);
	int l=0,r=n+1;
	for(i=1; i<=n; i++) {
		if(x[a[i].id]==a[i].c) {
			ans[++l]=a[i].id;
		} else {

			ans[--r]=a[i].id;
		}
	}
	int s1=0,s2=0;
	for(i=1; i<=n; i++) {
		s1+=x[ans[i]];
		if(s1>s2) {
			s2=s1;
			s2+=y[ans[i]];
		}
	}
	printf("%d\n",s2);
	for(i=1; i<n; i++) {
		printf("%d ",ans[i]);
	}
	printf("%d\n",ans[n]);
	return 0;
}

2024/5/15 21:58
加载中...