Pagini recente » Cod sursa (job #2407085) | Cod sursa (job #1455192) | Cod sursa (job #411997) | Cod sursa (job #1035607) | Cod sursa (job #2720288)
#include <fstream>
#include <algorithm>
#include <cmath>
#include <vector>
#include <queue>
using namespace std;
const int inf = 100000000;
const int nmax=105;
ifstream cin("djikstra.in");
ofstream cout("djikstra.out");
int n, k, l, h;
int d[nmax];
double ung, maxi, lung;
struct nod
{
int u,c;
};
vector <nod> v[nmax];
struct cmp{
bool operator()(int x,int y)
{
return d[x]<d[y];
}
};
priority_queue <int,vector<int>,cmp> q;
void dk(int sursa)
{
q.push(sursa);
d[sursa]=0;
while(!q.empty())
{
int node=q.top();
q.pop();
for(int i=0;i!=v[node].size();++i)
if(d[v[node][i].u]>d[node]+v[node][i].c)
{
q.push(v[node][i].u);
d[v[node][i].u]=d[node]+v[node][i].c;
}
}
}
int main() {
int m ;
cin>>n>>m;
for(int i=1;i<=m;++i)
{
int x,y,z;
cin>>x>>y>>z;
v[x].push_back({y,z});
}
for(int i=1;i<=n;++i)
d[i]=inf;
dk(1);
for(int i=2;i<=n;++i)
cout<<d[i]<<" ";
return 0;
}