Pagini recente » Cod sursa (job #1463876) | Cod sursa (job #1292746) | Cod sursa (job #590168) | Cod sursa (job #123314) | Cod sursa (job #753653)
Cod sursa(job #753653)
#include <cstdio>
#include <vector>
#define INF 0xfffffff
using namespace std;
vector<pair<int,int> >g[50005];
int d[50005],n,m;
void bellman(){
int y;
bool ok;
for(int i=2;i<=n;i++) d[i] = INF;
for(int i=2;i<=n;i++)
{
ok = false;
for(int j=1;j<=n;j++)
for(int x=0;x<g[j].size();x++)
{
y = g[j][x].first;
if(d[y] > d[j]+g[j][x].second) d[y]=d[j]+g[j][x].second , ok = 1;
}
}
if(ok) printf("Ciclu negativ!"); else
for(int i=2;i<=n;i++)printf("%d ",d[i]);
}
int main(){
int x,y,z;
freopen("bellmanford.in","r",stdin);
freopen("bellmanford.out","w",stdout);
scanf("%d %d",&n,&m);
for(int i=0;i<m;i++)
{
scanf("%d %d %d",&x,&y,&z);
g[x].push_back( make_pair(y,z) );
}
bellman();
return 0;
}