Pagini recente » Cod sursa (job #1151380) | Statistici UBB LALA LAZAR LONHARD (TunariiDeMortar) | Cod sursa (job #32270) | Cod sursa (job #375495) | Cod sursa (job #1922136)
#include <fstream>
#include<vector>
#include <queue>
using namespace std;
ifstream fin("dijkstra.in");
ofstream fout("dijkstra.out");
const int INF=0x3f3f3f3f;int S[50001]={0};
int main()
{
priority_queue<pair<int,int> >p;
int n,x,y,c,i,j,m;
vector<pair<int,int> >::iterator it;
vector<pair<int,int> >Noduri[50001];
fin>>n>>m;
for(i=1;i<=m;i++)
{
fin>>y>>x>>c;
Noduri[y].push_back(make_pair(c,x));
Noduri[x].push_back(make_pair(c,y));
}
vector<int>D(n+1,INF);
int nod,val,N,V;
D[1]=0;
for(p.push(make_pair(-D[1],1));!p.empty();)
{
val=-p.top().first;
nod=p.top().second;
p.pop();
if(S[nod]==0)
{
S[nod]=1;
if(D[nod]<val)
continue;
for(it=Noduri[nod].begin() ; it != Noduri[nod].end() ; ++it)
{
V=(*it).second;
N=(*it).first;
if(D[V]>D[nod]+N&&S[V]==0)
{
D[V]=D[nod]+N;
p.push(make_pair(-D[V],V));
}
}
}
}
for(i=2;i<=n;i++)
if(D[i]!=INF)
fout<<D[i]<<" ";
else
fout<<0<<" ";
return 0;
}