RT,康了好久,硬是找不出错
#include<bits/stdc++.h>
using namespace std;
struct node
{
int tired;
int Long;
}h[100005];
bool hhhc(node a,node b)
{
return a.tired>b.tired;
}
int main()
{
//freopen(".in","r",stdin);
//freopen(".out","w",stdout);
int n;
cin>>n;
int maxl=-10,maxln;
for(int i=0;i<n;i++)
{
scanf("%d",&h[i].Long);
}
for(int i=0;i<n;i++)scanf("%d",&h[i].tired);
sort(h,h+n,hhhc);
for(int i=0;i<n;i++)
{
if(maxl<h[i].Long)
{
maxl=h[i].Long;
maxln=i;
}
}
for(int i=0;i<n;i++)
{
int Max=-10,Min=1000000,Minm,sum=0;
for(int j=0;j<=i;j++)
{
Max=max(Max,h[j].Long);
sum+=h[j].tired;
if(Min>h[j].tired)
{
Min=h[j].tired;
Minm=j;
}
}
int t1=Max*2+sum;
int t2=maxl*2+sum-h[Minm].tired+h[maxln].tired;
printf("%d\n",max(t1,t2));
}
for(int i=0;i<n;i++)cout<<h[i].tired<<" ";
return 0;
}