#include <iostream>
#define INT_MAX 2147483647
using namespace std;
struct wskaznik
{
int wartosc;
int indeks;
};
void lowestelement(int A[],int na, wskaznik &pierwszy, wskaznik &drugi)
{
pierwszy.wartosc=INT_MAX;
drugi.wartosc=INT_MAX;
pierwszy.indeks=0;
drugi.indeks=1;
for(int i=0; i<na; i++)
{
if(A[i]<pierwszy.wartosc)
{
drugi.wartosc=pierwszy.wartosc;
drugi.indeks=pierwszy.indeks;
pierwszy.wartosc=A[i];
pierwszy.indeks=i;
}
else if(A[i] < drugi.wartosc )
{
drugi.wartosc=A[i];
drugi.indeks=i;
}
}
}
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
int t;
int n;
int a,b;
//int w=0;
int* tab;
int *tabindeks;
wskaznik pierwszy;
wskaznik drugi;
long long suma=0;
cin>>t;
for(int i=0; i<t; i++)
{
cin>>n;
tab=new int [n];
for (int j=0; j<n; j++)
{
cin>>tab[j];
}
tabindeks=new int[2*n-2];
for(int j=0; j<n-1; j++)
{
lowestelement(tab,n,pierwszy,drugi);
a=min(pierwszy.indeks,drugi.indeks);
b=max(pierwszy.indeks,drugi.indeks);
suma=suma+pierwszy.wartosc+drugi.wartosc;
tabindeks[2*j]=a;
tabindeks[2*j+1]=b;
tab[a]=(pierwszy.wartosc)+(drugi.wartosc);
tab[b]=INT_MAX;
}
cout<<suma<<endl;
for(int j=0;j<n-1;j++)
{
cout<<tabindeks[2*j]+1<<" "<< tabindeks[2*j+1]+1<<endl;
}
suma=0;
delete[] tab;
delete [] tabindeks;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojZGVmaW5lIElOVF9NQVggMjE0NzQ4MzY0Nwp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IHdza2F6bmlrCnsKICAgIGludCB3YXJ0b3NjOwogICAgaW50IGluZGVrczsKfTsKCnZvaWQgbG93ZXN0ZWxlbWVudChpbnQgQVtdLGludCBuYSwgd3NrYXpuaWsgJnBpZXJ3c3p5LCB3c2them5payAmZHJ1Z2kpCnsKICAgIHBpZXJ3c3p5LndhcnRvc2M9SU5UX01BWDsKICAgIGRydWdpLndhcnRvc2M9SU5UX01BWDsKICAgIHBpZXJ3c3p5LmluZGVrcz0wOwogICAgZHJ1Z2kuaW5kZWtzPTE7CiAgICBmb3IoaW50IGk9MDsgaTxuYTsgaSsrKQogICAgewogICAgICAgIGlmKEFbaV08cGllcndzenkud2FydG9zYykKICAgICAgICB7CiAgICAgICAgICAgIGRydWdpLndhcnRvc2M9cGllcndzenkud2FydG9zYzsKICAgICAgICAgICAgZHJ1Z2kuaW5kZWtzPXBpZXJ3c3p5LmluZGVrczsKICAgICAgICAgICAgcGllcndzenkud2FydG9zYz1BW2ldOwogICAgICAgICAgIHBpZXJ3c3p5LmluZGVrcz1pOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmKEFbaV0gPCBkcnVnaS53YXJ0b3NjICkKICAgICAgICAgICAgewogICAgICAgICAgICBkcnVnaS53YXJ0b3NjPUFbaV07CiAgICAgICAgICAgIGRydWdpLmluZGVrcz1pOwogICAgICAgICAgICB9CiAgICB9Cn0KCgppbnQgbWFpbigpCnsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7CiAgICBjaW4udGllKDApOwogICAgaW50IHQ7CiAgICBpbnQgbjsKICAgIGludCBhLGI7CiAgICAvL2ludCB3PTA7CiAgICBpbnQqIHRhYjsKICAgIGludCAqdGFiaW5kZWtzOwogICAgd3NrYXpuaWsgcGllcndzenk7CiAgICB3c2them5payBkcnVnaTsKICAgIGxvbmcgbG9uZyBzdW1hPTA7CiAgICBjaW4+PnQ7CiAgICBmb3IoaW50IGk9MDsgaTx0OyBpKyspCiAgICB7CiAgICAgICAgY2luPj5uOwogICAgICAgIHRhYj1uZXcgaW50IFtuXTsKICAgICAgICBmb3IgKGludCBqPTA7IGo8bjsgaisrKQogICAgICAgIHsKICAgICAgICAgICAgY2luPj50YWJbal07CiAgICAgICAgfQogICAgICAgIHRhYmluZGVrcz1uZXcgaW50WzIqbi0yXTsKICAgICAgICBmb3IoaW50IGo9MDsgajxuLTE7IGorKykKICAgICAgICB7CiAgICAgICAgICAgIGxvd2VzdGVsZW1lbnQodGFiLG4scGllcndzenksZHJ1Z2kpOwogICAgICAgICAgICBhPW1pbihwaWVyd3N6eS5pbmRla3MsZHJ1Z2kuaW5kZWtzKTsKICAgICAgICAgICAgYj1tYXgocGllcndzenkuaW5kZWtzLGRydWdpLmluZGVrcyk7CiAgICAgICAgICAgIHN1bWE9c3VtYStwaWVyd3N6eS53YXJ0b3NjK2RydWdpLndhcnRvc2M7CiAgICAgICAgICAgIHRhYmluZGVrc1syKmpdPWE7CiAgICAgICAgICAgIHRhYmluZGVrc1syKmorMV09YjsKICAgICAgICAgICAgdGFiW2FdPShwaWVyd3N6eS53YXJ0b3NjKSsoZHJ1Z2kud2FydG9zYyk7CiAgICAgICAgICAgIHRhYltiXT1JTlRfTUFYOwogICAgICAgIH0KICAgICAgICBjb3V0PDxzdW1hPDxlbmRsOwogICAgICAgIGZvcihpbnQgaj0wO2o8bi0xO2orKykKICAgICAgICB7CiAgICAgICAgY291dDw8dGFiaW5kZWtzWzIqal0rMTw8IiAiPDwgdGFiaW5kZWtzWzIqaisxXSsxPDxlbmRsOwogICAgICAgIH0KCgogICAgICAgIHN1bWE9MDsKICAgICAgICBkZWxldGVbXSB0YWI7CiAgICAgICAgZGVsZXRlIFtdIHRhYmluZGVrczsKICAgIH0KICAgIHJldHVybiAwOwp9Cg==