dalao求调
查看原帖
dalao求调
1056745
wen114248050楼主2024/8/22 14:50
#include <bits/stdc++.h>
using namespace std;
int n,a[10001],b[10001],sum,sum1,ans[10001],ans1;
struct l{
	int id,time;
}s[100001];
bool star(l f1,l f2)
{
	return f1.time<f2.time;	
}
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
		s[i].id=i;
	}
	for(int i=1;i<=n;i++)
	{
		cin>>b[i];
		s[i].time=min(a[i],b[i]);
	}
	sort(s+1,s+n+1,star);
	sum1=n;
	for(int i=1;i<=n;i++){
		if(s[i].time == a[s[i].id]) ans[++sum] = s[i].id;
		else ans[sum1--] = s[i].id;
	}
	
    for(int i=1;i<=n;i++)
    {
		if(b[ans[i]]>a[ans[i]])b[ans[i]+1]+=b[ans[i]]-a[ans[i]];
		ans1+=a[ans[i]];
	}
	//ans1+=b[n];
	cout<<ans1+2<<endl;;
    for(int i=1;i<=n;i++)cout<<ans[i]<<" ";
} 
2024/8/22 14:50
加载中...