Pagini recente » Cod sursa (job #2885207) | Cod sursa (job #3207025) | Cod sursa (job #2593464) | Cod sursa (job #2848091) | Cod sursa (job #2704447)
#include <bits/stdc++.h>
using namespace std;
ifstream in("dijkstra.in");
ofstream out("dijkstra.out");
const int NMAX=50003;
int n,m,dist[NMAX],seen[NMAX];
struct edge
{
int node, dist;
bool operator <(const edge &aux)const
{
return dist>aux.dist;
}
};
vector<edge> g[NMAX];
priority_queue<edge>pq;
int main()
{
in>>n>>m;
for(int i=1, a, b, l; i<=n; i++)
{
in>>a>>b>>l;
g[a].push_back({b,l});
g[b].push_back({a,l});
}
pq.push({1,0});
while(!pq.empty())
{
int node=pq.top().node, l=pq.top().dist;
pq.pop();
if(seen[node])
{
continue;
}
dist[node]=l;
seen[node] = 1;
for(auto y:g[node])
if(!seen[y.node])
pq.push({y.node,l+y.dist});
}
for(int i=2;i<=n;i++)
out<<dist[i]<<" ";
return 0;
}