Pagini recente » Cod sursa (job #161269) | Cod sursa (job #2895574) | Cod sursa (job #1747991) | Cod sursa (job #2194525) | Cod sursa (job #1119207)
#include <fstream>
using namespace std;
struct list{
int u,v,c;
}l[250001];
int dist[50001],pr[50001];
int main()
{ int i,j,n,m,ok=0;
ifstream f("bellmanford.in");
ofstream g("bellmanford.out");
f>>n>>m;
dist[1]=0;
for(i=2;i<=n;i++) dist[i]=2100000000;
for(i=1;i<=m;i++)
{
f>>l[i].u>>l[i].v>>l[i].c;
}
for(j=1;j<=n-1;j++)
{
for(i=1;i<=m;i++)
{
if(dist[l[i].u]+l[i].c<dist[l[i].v])
{
dist[l[i].v]=dist[l[i].u]+l[i].c;
pr[l[i].v]=l[i].u;
}
}
}
for(i=1;i<=m;i++)
{
if(dist[l[i].u]+l[i].c<dist[l[i].v])
{
dist[l[i].v]=dist[l[i].u]+l[i].c;
pr[l[i].v]=l[i].u;
ok=1;
break;
}
}
if(ok) {g<<"Ciclu negativ!\n"; return 0;}
for(i=2;i<=n;i++) g<<dist[i]<<' ';
g<<'\n';
//for(i=1;i<=n;i++) g<<pr[i]<<' ';
//g<<'\n';
f.close();
g.close();
return 0;
}