Pagini recente » Cod sursa (job #820018) | Cod sursa (job #3243537) | Cod sursa (job #501513) | Cod sursa (job #2402348) | Cod sursa (job #534795)
Cod sursa(job #534795)
# include <stdlib.h>
# include <cstdio>
using namespace std;
struct camp
{
int a, b;
}e[50005];
int cost[50005], c[250005], m, n;
int verif()
{int i;
for (i = 1; i <= m; i++)
if (cost[e[i].a] + c[i] < cost[e[i].b])
return 1;
return 0;
}
int main()
{int i, j;
freopen("bellmanford.in","r",stdin);
freopen("bellmanford.out","w",stdout);
scanf("%d%d",&n,&m);
for (i = 1; i <= m; i++)
scanf("%d%d%d", &e[i].a, &e[i].b, &c[i]);
cost[1] = 0;
for (i = 2; i <= n; i++)
cost[i] = 100000;
for (i = 1; i <= n; i++)
for (j = 1; j <= m; j++)
if (cost[e[j].a] + c[j] < cost[e[j].b])
cost[e[j].b] = cost[e[j].a] + c[j];
if (verif())
{
printf("Ciclu negativ");
return 0;
}
for (i = 2; i <= n; i++)
printf("%d ",cost[i]);
return 0;
}