Pagini recente » Cod sursa (job #2601621) | Cod sursa (job #141410) | Cod sursa (job #1527793) | Cod sursa (job #369105) | Cod sursa (job #2546386)
#include <bits/stdc++.h>
using namespace std;
struct edge
{
int y,cost;
};
vector<edge>v[50000];
int dp[100005];
void dfs(int nod)
{
int i;
for(i=0;i<v[nod].size();i++)
{
edge r=v[nod][i];
if(dp[r.y]>dp[nod]+r.cost)
{
dp[r.y]=dp[nod]+r.cost;
dfs(r.y);
}
}
}
int main()
{
freopen("dijkstra.in","r",stdin);
freopen("dijkstra.out","w",stdout);
int n,m,a,b,c,i;
scanf("%d%d",&n,&m);
for(i=2;i<=n;i++)dp[i]=1e9;
for(i=1;i<=m;i++)
{
scanf("%d%d%d",&a,&b,&c);
edge t;
t.y=b;t.cost=c;
v[a].push_back(t);
t.y=a;
v[b].push_back(t);
}
dfs(1);
int nr=1e9;
for(i=2;i<=n;i++)
printf("%d ",dp[i]%nr);
return 0;
}