#include <iostream>
#include <algorithm>
using namespace std;
int n;
struct asdf{
int a;
int b;
int c;
};
bool cmp(asdf x,asdf y){
return
max(x.a+y.a+y.b,x.a+x.b+y.b)
<
max(y.a+x.a+x.b,y.a+y.b+x.b);
}
int main(){
asdf s[1001];
cin>>n;
for(int i=1;i<=n;i++)cin>>s[i].a;
for(int i=1;i<=n;i++)cin>>s[i].b;
for(int i=1;i<=n;i++)s[i].c=i;
sort(s+1,s+n+1,cmp);
int h=s[1].a,hh=s[1].a+s[1].b;
for(int i=2;i<=n;i++){
h+=s[i].a;
hh=max(h,hh)+s[i].b;
}
cout<<hh<<"\n";
for(int i=1;i<n;i++)cout<<s[i].c<<" ";
cout<<s[n].c;
}