Pagini recente » Cod sursa (job #3193080) | Cod sursa (job #338112) | Cod sursa (job #342267) | Cod sursa (job #2747599) | Cod sursa (job #3243056)
#include <bits/stdc++.h>
using namespace std;
vector<pair<int, int>> g[50001];
vector<int> d(50001, 1e9);
int n, m;
void dijsktra(int v)
{
d[v]=0;
priority_queue<pair<int, int>, vector<pair<int,int>>, greater<pair<int, int>>> q;
q.push({0, v});
while(q.size())
{
auto [dist, nod]=q.top();
q.pop();
if(dist!=d[nod])continue;
for(auto [vecin, len]:g[nod])
{
if(d[nod]+len < d[vecin])
{
d[vecin]=d[nod]+len;
q.push({d[vecin], vecin});
}
}
}
}
int main()
{
ifstream cin("dijkstra.in");
ofstream cout("dijkstra.out");
cin>>n>>m;
for(int i=1, x, y, z; i<=m; i++)
{
cin>>x>>y>>z;
g[x].push_back({y, z});
g[y].push_back({x, z});
}
dijsktra(1);
for(int i=2; i<=n; i++)
cout<<d[i]<<' ';
return 0;
}