Pagini recente » Cod sursa (job #655158) | Cod sursa (job #1083920) | Cod sursa (job #362655) | Cod sursa (job #2442296) | Cod sursa (job #2433204)
#include <bits/stdc++.h>
#define pb push_back
#define st first
#define nd second
#define inf 5000000004
#define ll long long
using namespace std;
ll n, m, i, j, ans[50005], cost, x, y;
priority_queue <pair <int,int > > pq[50005];
void dfs(int nod)
{
while(!pq[nod].empty())
{
pair<int,int> curr=pq[nod].top();
curr.st=-curr.st;
ans[curr.nd]=min(ans[curr.nd],ans[nod]+curr.st);
dfs(curr.nd);
pq[nod].pop();
}
}
int main()
{
freopen("dijkstra.in","r",stdin);
freopen("dijkstra.out","w",stdout);
cin>>n>>m;
for(i=1;i<=n;i++)
ans[i]=inf;
ans[1]=0;
for(i=1;i<=m;i++)
{
cin>>x>>y>>cost;
pq[x].push({-cost,y});
}
dfs(1);
for(i=2;i<=n;i++)
cout<<ans[i]<<' ';
return 0;
}