Pagini recente » Cod sursa (job #3274899) | Cod sursa (job #269003) | Cod sursa (job #2886902) | Cod sursa (job #3249449) | Cod sursa (job #1563059)
#include<cstdio>
#include<vector>
using namespace std;
vector <int> v[50001];
vector <int> v2[50001];
bool viz[50001];
int d[50001];
void dijk(int nod)
{int i;
for(i=0;i<v[nod].size();i++)
if(viz[v[nod][i]]==0)
if(d[nod]+v2[nod][i]<d[v[nod][i]])
d[v[nod][i]]=d[nod]+v2[nod][i];
viz[nod]=1;
for(i=0;i<v[nod].size();i++)
if(viz[v[nod][i]]==0)
dijk(v[nod][i]);
}
int main ()
{freopen ("dijkstra.in","r",stdin);
freopen ("dijkstra.out","w",stdout);
int n,m,i,j,a,b,c,x,q;
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)
{scanf("%d%d%d",&a,&b,&c);
v[a].push_back(b);
v2[a].push_back(c);
}
for(i=2;i<=n;i++)
d[i]=1000000000;
dijk(1);
for(i=2;i<=n;i++)
if(d[i]!=1000000000)
printf("%d ",d[i]);
else
printf("0 ");
return 0;
}