A53 TJ
2024-11-06 15:29:06
发布于:江苏
1阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
int ans[100005],lon[100005],rlon[100005];
struct node{
int lo,p;
}a[100005];
bool cmp(node x,node y)
{
return x.p>y.p;
}
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i].lo;
for(int i=1;i<=n;i++) cin>>a[i].p;
sort(a+1,a+n+1,cmp);
for(int i=1;i<=n;i++) ans[i]=ans[i-1]+a[i].p;
for(int i=1;i<=n;i++) lon[i]=max(lon[i-1],2*a[i].lo);
for(int i=n;i>=1;i--) rlon[i]=max(rlon[i+1],2*a[i].lo+a[i].p);
for(int i=1;i<=n;i++) cout<<max(lon[i]+ans[i],rlon[i]+ans[i-1])<<'\n';
return 0;
}
这里空空如也
有帮助,赞一个