Pagini recente » Cod sursa (job #482378) | Cod sursa (job #1325794) | Cod sursa (job #1065936) | Cod sursa (job #908014) | Cod sursa (job #3241870)
/******************************************************************************
Online C++ Compiler.
Code, Compile, Run and Debug C++ program online.
Write your code in this editor and press "Run" button to compile and execute it.
*******************************************************************************/
#include <bits/stdc++.h>
using namespace std;
ifstream f("dijkstra2.in");
ofstream g("dijkstra2.out");
long long n,m,p,i,j,a,b,cost,nod,nod2;
vector<pair<long long,long long>>adjlist[100005];
set<pair<long long,long long>>s;
long long d[100005],M[100005];
int main()
{ f>>n>>m;
for (i=1;i<=m;i++){
f>>a>>b>>cost;
adjlist[a].push_back({b,cost});
}
p=1;
for (i=1;i<=n;i++)d[i]=9123372036854775807;
d[p]=0;
s.insert({0,p});
while (!s.empty()){
nod=s.begin()->second;
s.erase(s.begin());
for (i=0;i<adjlist[nod].size();i++){
if (1ll*adjlist[nod][i].second+d[nod]<1ll*d[adjlist[nod][i].first]){
s.erase(make_pair(d[adjlist[nod][i].first] , adjlist[nod][i].first));
d[adjlist[nod][i].first] = adjlist[nod][i].second+d[nod];
s.insert(make_pair(d[adjlist[nod][i].first] , adjlist[nod][i].first));
}
}
}
for (i=2;i<=n;i++)
if (d[i]!=9123372036854775807)g<<d[i]<<' ';
else g<<0<<' ';
return 0;
}