满分求助!!!
查看原帖
满分求助!!!
1559405
YKCCFDW楼主2024/12/8 11:31
#include<bits/stdc++.h>
using namespace std;
const int N=1010;
int n,a[N],b[N],order[N];
struct node{
	int time,belong,id;
}c[N];
void init(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	for(int i=1;i<=n;i++){
		cin>>b[i];
		c[i].id=i;
		if(a[i]<b[i]) {
			c[i].time=a[i];
			c[i].belong=0;
		}
		else{
			c[i].time=b[i];
			c[i].belong=1;
		}
	}
	return;
}
int cmp(node x,node y){
	return x.time<y.time;
}
void make_order(){
	int cnt1=1,cnt2=n;
	sort(c+1,c+1+n,cmp);
	for (int i=1;i<=n;i++){
		if (c[i].belong==0){
			order[cnt1++]=c[i].id;
		}
	    else{
	    	order[cnt2--]=c[i].id;
		}
	}
	return;
}
void work(){
	int A=0,B=0;
	for(int i=1;i<=n;i++){
		A+=a[order[i]];
		if(B<A){
			B=A;	
		}
		B+=b[order[i]];
	}
	cout<<B<<endl;
	for(int i=1;i<=n;i++){
		cout<<order[i]<<" ";
	}
	return;
}
int main(){
	init(); 
	make_order();
	work();
	return 0;
}
2024/12/8 11:31
加载中...