如题,样例2都没过就AC了。
#include<bits/stdc++.h>
using namespace std;
int n;
struct Data{
int s,x;
}a[10000005];
bool cmp(Data x,Data y){
return x.x>y.x;
}
int rt,ans;
int main(){
scanf("%d",&n);
for(int i=1;i<=n;++i) scanf("%d",&a[i].s),a[i].s*=2;
for(int i=1;i<=n;++i) scanf("%d",&a[i].x);
sort(a+1,a+1+n,cmp);
for(int i=1;i<=n;++i)
if(a[rt].s+a[rt].x<a[i].s+a[i].x) rt=i;
ans=a[rt].s+a[rt].x;
printf("%d\n",ans);
for(int i=2,t=1;i<=n;++i,++t){
if(t==rt) t++;
ans+=a[t].x;
printf("%d\n",ans);
}
return 0;
}