Pagini recente » Cod sursa (job #2366260) | Cod sursa (job #414094) | Cod sursa (job #2062546) | Borderou de evaluare (job #949938) | Cod sursa (job #1397423)
#include<fstream>
#include<vector>
#include<queue>
using namespace std;
ifstream cin("bellmanford.in");
ofstream cout("bellmanford.out");
const int N = 50003;
const int inf = 1e9;
#define pb push_back
#define mp make_pair
int n,m,i,a,b,c;
vector< pair<int, int> > g[N];
vector<int> d(N,inf);
vector<int> V(N,0);
queue<int> q;
int main()
{
cin>>n>>m;
while (m--)
{
cin>>a>>b>>c;
g[a].pb(mp(b,c));
}
d[1]=0;
V[1]=1;
q.push(1);
while (q.size())
{
int v=q.front();
q.pop();
for (i=0;i<g[v].size();i++)
{
int to=g[v][i].first,len=g[v][i].second;
if (d[to]>d[v]+len)
{
++V[to];
if (V[to]==n)
{
cout<<"Ciclu negativ!";
return 0;
}
d[to]=d[v]+len;
q.push(to);
}
}
}
for (i=2;i<=n;i++)cout<<d[i]<<' ';
return 0;
}