Pagini recente » Cod sursa (job #100959) | Cod sursa (job #2885575) | Cod sursa (job #1265295) | Cod sursa (job #1805684) | Cod sursa (job #2380007)
#include <fstream>
using namespace std;
int graf[20][20];
int dist[20];
int n,m,a,b,c,mi;
void dfs(int nod,int nr)
{
for(int i=1;i<=n;i++)
{
if(graf[nod][i]>0&&(dist[i]==0||dist[i]>dist[nod]+graf[nod][i])&&i!=1)
{
dist[i]=dist[nod]+graf[nod][i];
dfs(i,nr+1);
}
if(nr==n&&i==1&&graf[nod][i]>0)
{
dist[i]=dist[nod]+graf[nod][i];
if(mi==0||mi>dist[1])
mi=dist[1];
dist[1]=0;
}
if(i==n)
dist[nod]=0;
}
}
int main()
{
ifstream in("hamilton.in");
ofstream out("hamilton.out");
in>>n>>m;
for(int i=1;i<=m;i++)
{
in>>a>>b>>c;
graf[a+1][b+1]=c;
}
dfs(1,1);
out<<mi;
return 0;
}