Pagini recente » Cod sursa (job #1505077) | Cod sursa (job #2223078) | Cod sursa (job #1525579) | Cod sursa (job #1030936) | Cod sursa (job #1015712)
#include<fstream>
#define maxn 50010
#define maxm 250010
#define inf 1000000000
using namespace std;
ifstream f("bellmanford.in");
ofstream g("bellmanford.out");
long n,m,i,j,k,cost[maxn];
struct muchie
{
long a;
long b;
long c;
}v[maxm];
void read()
{
f>>n>>m;
for (long i=1; i<=m; i++)
f>>v[i].a>>v[i].b>>v[i].c;
for (long i=2; i<=n; i++)
cost[i]=inf;
cost[1]=0;
}
void solve()
{
for(long i=1; i<=n; i++)
for(long j=1; j<=m; j++)
if(cost[v[j].a]+v[j].c<cost[v[j].b])
cost[v[j].b]=cost[v[j].a]+v[j].c;
}
long negativ()
{
for(long i=1; i<=m; i++)
if(cost[v[i].a]+v[i].c<cost[v[i].b])
return 1;
return 0;
}
int main ()
{
read ();
solve ();
if (negativ ())
{
g<<"Ciclu negativ!\n";
return 0;
}
for (long i=2; i<=n; i++)
g<<cost[i]<<" ";
f.close ();
g.close ();
return 0;
}