Pagini recente » Cod sursa (job #2558009) | Cod sursa (job #1822257) | Cod sursa (job #1158441) | Cod sursa (job #2700213) | Cod sursa (job #1852065)
#include<cstdio>
#include<deque>
#include<vector>
#define INF 2e9
using namespace std;
struct muchie{int nod,cost;};
vector <muchie> g[50001];
char in[50001];
char ap[50001];
int best[50001];
deque <int> d;
int main(){
int n,m,i,a,b,c,nod;
muchie x,it;
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",&a,&b,&c);
x.nod=b;
x.cost=c;
g[a].push_back(x);
}
for(i=2;i<=n;i++)
best[i]=INF;
best[1]=0;
in[1]=1;
ap[1]=1;
d.push_back(1);
while(!d.empty()){
nod=d.front();
d.pop_front();
in[nod]=0;
for(i=0;i<g[nod].size();i++){
it=g[nod][i];
if(best[it.nod]>best[nod]+it.cost){
best[it.nod]=best[nod]+it.cost;
ap[it.nod]++;
if(ap[it.nod]==n+1){
printf("Ciclu negativ!");
return 0;
}
if(!in[it.nod]){
d.push_back(it.nod);
in[it.nod]=1;
}
}
}
}
for(i=2;i<=n;i++)
printf("%d ",best[i]);
return 0;
}