Pagini recente » Cod sursa (job #2856691) | Cod sursa (job #402790) | Cod sursa (job #2220359) | Cod sursa (job #2085866) | Cod sursa (job #397992)
Cod sursa(job #397992)
#include <iostream>
#include<stdlib.h>
#include<stdio.h>
using namespace std;
#define inf
int n,m,d[250001];
int *a[250001],*c[250001];
void citire()
{
freopen("bellmanford.in","r",stdin);
scanf("%d %d",&n,&m);
for(int i=1;i<=n;i++)
{
a[i]=(int *) realloc(a[i],sizeof(int));
c[i]=(int *) realloc(c[i],sizeof(int));
c[i][0]=0;
a[i][0]=0;
}
for(int i=1;i<=m;i++)
{
int x,y,z;
scanf("%d %d %d",&x,&y,&z);
a[x][0]++;
c[x][0]++;
a[x]=(int *)realloc(a[x],(a[x][0]+1)*sizeof(int));
c[x]=(int *)realloc(c[x],(c[x][0]+1)*sizeof(int));
a[x][a[x][0]]=y;
c[x][c[x][0]]=z;
}
/*for(int i=1;i<=n;i++)
for(int j=1;j<=a[i][0];j++)
cout<<i<<" "<<a[i][j]<<" "<<c[i][j]<<endl;*/
}
void initializare()
{
for(int i=1;i<=n;i++)
d[i]=c[1][i];
for(int i=1;i<=n;i++)
cout<<d[i]<<" ";
}
/*void belman()
{
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
for(int k=1;k<=a[j][0];k++)
if((c[j][k]!=inf)&&(d[k]>d[j]+c[j][k]))
d[k]=d[j]+a[j][k];
*/
int main()
{
citire();
initializare();
//belman();
return 0;
}