鹅... 有亿点长
#include<bits/stdc++.h>
using namespace std;
int k=0,best=0;
int a[10010],b[10010];
int m[10010],shu[10010],last[10010];
int main(){
int n;
scanf("%d", &n);
for(int i=1;i<=n;i++){
scanf("%d", &a[i]);
shu[i]=i;
}
for(int i=1;i<=n;i++){
scanf("%d", &b[i]);
if(a[i]>b[i])m[i]=b[i];
else m[i]=a[i];
}
int t;
for(int i=1;i<=n-1;i++){
for(int j=i+1;j<=n;j++){
if(m[i]>m[j]){
t=m[i];
m[i]=m[j];
m[j]=t;
t=shu[i];
shu[i]=shu[j];
shu[j]=t;
}
}
}
int l=1,r=n;
for(int i=1;i<=n;i++){
if(m[i]==b[shu[i]]){
last[r]=shu[i];
r--;
}
else{
last[l]=shu[i];
l++;
}
}
for(int i=1;i<=n;i++){
k+=a[last[i]];
if(best<k)best=k;
best+=b[last[i]];
}
cout<<best<<"\n";
for(int i=1;i<=n;i++)printf("%d ", last[i]);
return 0;
}