Pagini recente » Cod sursa (job #2287763) | Cod sursa (job #585853) | Cod sursa (job #622659) | Cod sursa (job #1587867) | Cod sursa (job #2174799)
#include <bits/stdc++.h>
#define INF 0x3f3f3f3f
using namespace std;
ifstream f("dijkstra.in");
ofstream g("dijkstra.out");
int n,m;
priority_queue <pair<int,int> , vector <pair <int,int> > , greater <pair<int,int> > > pq;
vector <pair<int,int> > V[50005];
int dist[50005];
int main()
{
memset(dist,INF,sizeof(dist));
f>>n>>m;
for(int i=1;i<=m;++i)
{
int x,y,d;
f>>x>>y>>d;
V[x].push_back({y,d});
}
dist[1]=0;
pq.push({0,1});
while(!pq.empty())
{
int nod = pq.top().second;
int distanta = pq.top().first;
pq.pop();
if(dist[nod]<distanta)
continue;
for(auto &it:V[nod])
{
int u = it.first;
int di = it.second;
if(dist[u]>dist[nod]+di)
{
dist[u]=dist[nod]+di;
pq.push({dist[u],u});
}
}
}
for(int i=2;i<=n;++i)
if(dist[i]!=INF)
g<<dist[i]<<" ";
else
g<<0<<" ";
return 0;
}