Pagini recente » Cod sursa (job #1046159) | Cod sursa (job #2094018) | Cod sursa (job #316724) | qweqwe | Cod sursa (job #2143009)
#include <iostream>
#include <fstream>
#include <deque>
#include <vector>
#include <set>
using namespace std;
ifstream fin("dijkstra.in");
ofstream fout("dijkstra.out");
int n,i,j,m,a,b,c,cst[50005],fi,sc,x;
bool par[50005];
vector<pair<int,int>> vec[50005];
set<pair<int,int>> ss;
int main() {
fin>>n>>m;
for(i=1;i<=m;i++)
{
fin>>a>>b>>c;
vec[a].push_back(make_pair(b,c));
}
m=n;
for(i=1;i<=n;i++) cst[i]=-1;
ss.insert(make_pair(0,1));
cst[1]=0;
while(!ss.empty())
{
n=(*ss.begin()).second;
ss.erase(ss.begin());
c=cst[n];
for(i=0;i<vec[n].size();i++)
{
fi=vec[n][i].first;
sc=vec[n][i].second;
x=c+sc;
if(cst[fi]==-1)
{
cst[fi]=x;
ss.insert(make_pair(x,fi));
}
if(x<cst[fi]) cst[fi]=x;
}
}
for(i=2;i<=m;i++)
{
if(cst[i]==-1) fout<<0<<" ";
else fout<<cst[i]<<" ";
}
}