Pagini recente » Cod sursa (job #59059) | Cod sursa (job #3221529) | Cod sursa (job #2578565) | Cod sursa (job #940377) | Cod sursa (job #962249)
Cod sursa(job #962249)
#include<stdio.h>
#include<vector>
#define inf 1000000000
using namespace std;
int M,N,x,y,c,predec[55000],dist[55000];
struct muchie
{
int nod1;
int nod2;
int cost;
} m[255000];
int main()
{
freopen("bellmanford.in","r",stdin);
freopen("bellmanford.out","w",stdout);
scanf("%d%d",&N,&M);
for(int i=1;i<=M;++i)
{
scanf("%d%d%d",&x,&y,&c);
m[i].nod1=x;
m[i].nod2=y;
m[i].cost=c;
}
for(int i=2;i<=N;++i)
{
dist[i]=inf;
predec[i]=0;
}
for(int j=1;j<N;++j)
{
for(int i=1;i<=M;++i)
if(dist[m[i].nod1]+m[i].cost<dist[m[i].nod2])
{
dist[m[i].nod2]=dist[m[i].nod1]+m[i].cost;
predec[m[i].nod2]=m[i].nod1;
}
}
for(int i=1;i<=M;++i)
if(dist[m[i].nod1]+m[i].cost<dist[m[i].nod2])
{
printf("Ciclu negativ!");
return 0;
}
for(int i=2;i<=N;++i)
printf("%d ",dist[i]);
return 0;
}