Pagini recente » Cod sursa (job #655909) | Cod sursa (job #2921403) | Cod sursa (job #3186595) | Cod sursa (job #410989) | Cod sursa (job #3277559)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("dijkstra.in");
ofstream fout("dijkstra.out");
struct edge
{
int nod,val;
bool operator <(const edge a) const{ return val>a.val;}
};
priority_queue<edge,vector<edge>> q;
bitset <50001> vap;
int dist[50001];
vector<pair<int,int>> v[50001];
void ff(int nod)
{
q.push({nod,0});
int distanta;
while(!q.empty())
{
nod=q.top().nod;
distanta=q.top().val;
q.pop();
if(vap[nod])
continue;
dist[nod]=distanta;
vap[nod]=1;
for(int i=0;i<v[nod].size();i++)
q.push({v[nod][i].first,distanta+v[nod][i].second});
}
}
int main()
{
int n,m,st,dr,val;
fin>>n>>m;
for(int i=0;i<m;i++)
{
fin>>st>>dr>>val;
v[st].push_back({dr,val});
}
ff(1);
for(int i=2;i<=n;i++)
fout<<dist[i]<<' ';
return 0;
}