Pagini recente » Cod sursa (job #1659150) | Cod sursa (job #1352636) | Cod sursa (job #1185993) | Cod sursa (job #993855) | Cod sursa (job #2735831)
#include <bits/stdc++.h>
#define st first
#define nd second
#define pb push_back
#define N 50005
using namespace std;
ifstream fin("dijkstra.in");
ofstream fout("dijkstra.out");
typedef long long ll;
int n,m,dist[N],x,y,c,t;
bool use[N];
vector <pair<int,int > > g[N];
priority_queue <int, vector <int>, std::greater<int> > pq;
int main()
{
fin>>n>>m;
for(int i=1;i<=m;i++)
{
fin>>x>>y>>c;
g[x].pb({y,c});
}
for(int i=2;i<=n;i++)
dist[i]=INT_MAX;
pq.push(1);
while(!pq.empty())
{
t=pq.top();
use[t]=0;
pq.pop();
for(auto it : g[t])
{
if(dist[it.st]>dist[t]+it.nd)
{
dist[it.st]=dist[t]+it.nd;
if(!use[it.st])
{
use[it.st]=1;
pq.push(it.st);
}
}
}
}
for(int i=2;i<=n;i++)
if(dist[i]==INT_MAX)
fout<<"0 ";
else fout<<dist[i]<<' ';
return 0;
}