Pagini recente » Cod sursa (job #1215017) | Cod sursa (job #2793865) | Cod sursa (job #565414) | Cod sursa (job #2228734) | Cod sursa (job #2504913)
#include <bits/stdc++.h>
using namespace std;
ifstream f("dijkstra.in");
ofstream g("dijkstra.out");
int n,p,m;
const int INF=10000000;
int d[50001],viz[50001];
vector<pair<int,int> > v[50001];
void init();
int cauta_min();
void Dijkstra();
int main()
{
f>>n>>m;
p=1;
int node1,node2,cost;
for(int i=1;i<=m;++i)
{
f>>node1>>node2>>cost;
v[node1].push_back(make_pair(node2,cost));
}
init();
Dijkstra();
for(int i=2;i<=n;i++)
if(d[i]==INF)
g<<"0 ";
else
g<<d[i]<<" ";
return 0;
}
void init()
{
for(int i=2;i<=n;i++)
{
d[i]=INF;
}
}
priority_queue< pair<int,int> > q;
void Dijkstra()
{
int nod;
q.push({0,p});
while(!q.empty())
{
nod=q.top().second;
q.pop();
if(!viz[nod])
{
viz[nod]=1;
for(auto it:v[nod])
{
if(d[x]+it.second<d[it.first])
{
d[it.first]=val+it.second;
q.push({-d[it.first],it.first});
}
}
}
}
}