Pagini recente » Cod sursa (job #2608302) | Cod sursa (job #13041) | Cod sursa (job #358376) | Cod sursa (job #3228066) | Cod sursa (job #2280573)
#include <fstream>
using namespace std;
ifstream in("hamilton.in");
ofstream out("hamilton.out");
int n,m,x,y,r[401],c[401][401],mini=400000000;
bool a[401][401],v[401],ok;
void dfs(int k)
{ r[++y]=k;
x=k;
v[k]=1;
for(int i=1;i<=n;i++)
{ if(a[k][i] && !v[i])
dfs(i);
}
if(y==n && a[k][1])
{ int s=c[k][1];
for(int i=2;i<=y;i++)
s+=c[r[i-1]][r[i]];
if(mini>s)
mini=s;
ok=1;
}
v[k]=0;
y--;
}
int main()
{ in>>n>>m;
for(int i=1;i<=m;i++)
{ in>>x>>y;
x++,y++;
in>>c[x][y];
a[x][y]=1;
}
y=0;
dfs(1);
if(ok)
out<<mini;
else
out<<"Nu exista solutie";
in.close();
out.close();
return 0;
}