#include<bits/stdc++.h>
using namespace std;
struct node{
int pos;
double t;
bool operator()(node a,node b){
return a.t >= b.t; //最小值优先
}
};
int main(){
priority_queue< node,vector<node>,node> pq;
int n;
double sum=0;
cin>>n;
for(int i=1;i<=n;i++){
node nd;
nd.pos=i;
cin>>nd.t;
pq.push(nd) ;
}
if(n==1){
node nn=pq.top();
pq.pop();
printf("1 %.2lf\n",nn.t);
return 0;
}
while(pq.size()!=1){
node n1=pq.top();
pq.pop();
node n2=pq.top();
pq.pop();
sum+=( n1.t+n2.t );
if(n1.pos!=-1) cout<<n1.pos<<" ";
if(n2.pos!=-1) cout<<n2.pos<<" ";
node n3;
n3.pos=-1;
n3.t=n1.t+n2.t;
pq.push(n3);
}
printf("%.2lf\n",sum/n);
}