Pagini recente » Cod sursa (job #3275853) | Cod sursa (job #1683965) | Cod sursa (job #3265983) | Cod sursa (job #582568) | Cod sursa (job #3285614)
#include <fstream>
#include <vector>
using namespace std;
ifstream cin("bellmanford.in");
ofstream cout("bellmanford.out");
const int INF=250000001;
struct muchie
{
int x,y,c;
};
vector <muchie> lista;
int dist[50001];
int n,m;
void bellford()
{
int ok=0;
for(int i=1;i<=n-1;i++)
{
for(auto k:lista)
{
if(dist[k.x]+k.c<dist[k.y])
dist[k.y]=dist[k.x]+k.c;
}
}
for(auto k:lista)
{
if(dist[k.x]+k.c<dist[k.y])
{
cout<<"Ciclu negativ!";
ok=1;
}
}
if(ok==0)
for(int i=2;i<=n;i++)
cout<<dist[i]<<" ";
}
int main()
{
int x,y,c;
cin>>n>>m;
for(int i=1;i<=m;i++)
{
cin>>x>>y>>c;
lista.push_back({x,y,c});
}
for(int i=2;i<=n;i++)
dist[i]=INF;
bellford();
return 0;
}