Pagini recente » Cod sursa (job #3345770) | Cod sursa (job #1008869) | Cod sursa (job #2085140) | Cod sursa (job #3322441) | Cod sursa (job #3353081)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("dijkstra.in");
ofstream fout("dijkstra.out");
vector<pair<int, int>> adj[50001];
int d[50001], n, m, u, v, w;
struct cmp {
bool operator()(pair<int, int> const& a, pair<int, int> const& b)
{
return a.first>b.first;
}
};
int main() {
fin>>n>>m;
while(m)
{
m--;
fin>>u>>v>>w;
adj[u].push_back({v,w});
}
for (int i=1;i<=n;i++)
d[i]=2147483647;
priority_queue<pair<int, int>, vector<pair<int, int>>, cmp> q;
q.push({d[1]=0,1});
while (q.size()!=0)
{
int u=q.top().second, dist=q.top().first;
q.pop();
if(dist>d[u])
continue;
for (pair<int, int> &e:adj[u])
if (d[e.first]>d[u]+e.second)
q.push({d[e.first]=d[u]+e.second,e.first});
}
for (int i=2;i<=n;i++)
if(d[i]==2147483647)
fout<<0<<" ";
else
fout<<d[i]<<" ";
return 0;
}