Pagini recente » Cod sursa (job #1982977) | Cod sursa (job #1742862) | Cod sursa (job #3164349) | Cod sursa (job #2652277) | Cod sursa (job #308500)
Cod sursa(job #308500)
#include<stdio.h>
#define N 50000
int *a[N],n,m,c[N],x[N],y[N],d[N],viz[N];
void bfs(int x0)
{
int coada[N],x,y,p,u;
p=u=0;
coada[u++]=x0;
viz[x0]=1;
while (u!=p)
{
x=coada[p++];
for (int i=1; i<=a[x][0]; ++i)
{
y=a[x][i];
if (!viz[y])
{
viz[y]=1;
c[y]+=c[x];
coada[u++]=y;
}
}
}
}
void citire()
{
freopen("dijkstra.in","r",stdin);
freopen("dijkstra.out","w",stdout);
scanf("%d%d",&n,&m);
for (int i=1; i<=m; ++i)
{
scanf("%d%d%d",&x[i],&y[i],&c[i]);
++d[x[i]];
}
for (int i=1; i<=n; ++i)
{
a[i]= new int [1+d[i]];
a[i][0]=0;
}
for (int i=1; i<=m; ++i)
{
a[x[i]][++a[x[i]][0]]=y[i];
//a[y[i]][++a[y[i]][0]]=x[i];
}
bfs(1);
for (int i=1; i<=n; ++i)
printf("%d ",c[i]);
}
int main()
{
citire();
return 0;
}