Pagini recente » Cod sursa (job #550869) | Cod sursa (job #639036) | Cod sursa (job #2974541) | Cod sursa (job #1070954) | Cod sursa (job #2159836)
#include <bits/stdc++.h>
using namespace std;
ifstream f("dijkstra.in");
ofstream g("dijkstra.out");
const int N = 50010;
const int oo = 1000000001;
bitset<N> viz;
int n,m,i,j,c,cst,vec,d[N];
vector<pair<int,int>> v[N];
priority_queue<pair<int,int>> q;
int main()
{
f>>n>>m;
for(;m;m--)
{
f>>i>>j>>c;
v[i].push_back(make_pair(c,j));
}
fill(d+1,d+n+1,oo);
d[1]=0;
q.push(make_pair(0,1));
while(q.size())
{
c=-q.top().first;
i=q.top().second;
q.pop();
if(viz[i])
continue;
viz[i]=1;
for(auto it:v[i])
{
cst=c+it.first;
vec=it.second;
if(d[vec]>cst)
{
d[vec]=cst;
q.push(make_pair(-cst,vec));
}
}
}
for(i=2;i<=n;i++)
{
if(d[i]==oo)
g<<"0 ";
else
g<<d[i]<<' ';
}
return 0;
}