#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstdio>
using namespace std;
struct obj{
int a_time;
int b_time;
int id;
};
obj o[10005];
int a[100005],b[100005];
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>o[i].a_time;
o[i].id=i;
}
for(int i=1;i<=n;i++){
cin>>o[i].b_time;
}
for(int i=1;i<=n-1;i++){
for(int j=i+1;j<=n;j++){
int c1=o[i].a_time+max(o[j].a_time,o[i].b_time)+o[j].b_time;
int c2=o[j].a_time+max(o[i].a_time,o[j].b_time)+o[i].b_time;
if(c1>c2){
int mid=o[i].id;
o[i].id=o[j].id;
o[j].id=mid;
}
}
}
int t=0;
int t_bline=0;
for(int i=1;i<=n;i++){
t+=o[o[i].id].a_time;
if(t_bline>t){
t_bline+=o[o[i].id].b_time;
}else{
t_bline=t+o[o[i].id].b_time;
}
//cout<<"("<<t<<","<<t_bline<<")"<<" ";
}
cout<<t_bline<<endl;
for(int i=1;i<=n;i++){
cout<<o[i].id<<" ";
}
return 0;
}
orz orz