Pagini recente » Cod sursa (job #2258653) | Cod sursa (job #1825406) | Cod sursa (job #2772548) | Cod sursa (job #41414) | Cod sursa (job #2572082)
//
// main.cpp
// dijkstra recapitulare
//
// Created by diana micloiu on 05/03/2020.
// Copyright © 2020 diana micloiu. All rights reserved.
//
#include <fstream>
#include <queue>
#include <vector>
#define NMAX 50005
#define inf 1e9
using namespace std;
ifstream f("dijkstra.in");
ofstream g("dijkstra.out");
vector<pair<int,int> >v[NMAX];
priority_queue<pair<int,int>,vector<pair<int,int> >,greater<pair<int,int> > >h;
int n,m,x,y,d[NMAX],cost;
bool use[NMAX];
void dijkstra()
{
h.push({0,1});
while(!h.empty())
{
int nod=h.top().second;
h.pop();
if(!use[nod])
{
int lg=v[nod].size();
for(int i=0;i<lg;i++)
{
int vec=v[nod][i].second;
int costt=v[nod][i].first;
if(d[vec]>d[nod]+costt)
{
d[vec]=d[nod]+costt;
h.push({d[vec],vec});
}
}
}
}
}
int main() {
f>>n>>m;
for(int i=1;i<=m;i++)
{
f>>x>>y>>cost;
v[x].push_back({cost,y});
}
for(int i=1;i<=n;i++)d[i]=inf;
d[1]=0;
dijkstra();
for(int i=2;i<=n;i++)
{
if(d[i]==inf)g<<"0"<<" ";
else g<<d[i]<<" ";
}
return 0;
}