#include<fstream>
using namespace std;
ifstream fin("date.in");
ofstream fout("date.out");
int x[100],pus[100],n,s;
int a[100][100];
void citire()
{
int i,j;
fin>>n;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
fin>>a[i][j];
}
void Write()
{ for(int i=1;i<=n;i++) fout<<x[i]<<" ";
fout<<endl<<s;
}
void voiajor(int k)
{ int min=100000,imin;
for(int i=1;i<=n;i++)
if(!pus[i] && a[x[k-1]][i]<min && i!=x[k-1])
{
min=a[x[k-1]][i];
imin=i;
}
x[k]=imin;
pus[imin]=1;
s=s+a[x[k-1]][imin];
if(k==n) Write();
else voiajor(k+1);
}
int main()
{
citire();
x[1]=1;
pus[1]=1;
voiajor(2);
fin.close();
fout.close();
return 0;
}
|