Pagini recente » Cod sursa (job #452821) | Cod sursa (job #2677619) | Istoria paginii runda/mehrschwankerweiterte/clasament | Cod sursa (job #1398385) | Cod sursa (job #2870889)
#include <bits/stdc++.h>
using namespace std;
ifstream fcin("dijkstra.in");
ofstream fcout("dijkstra.out");
const int Nmax=105;
const int oo=(1<<30);
int N,m,p,x,y,c;
int D[Nmax];
using PI = pair< int, int>;
vector < PI > G[Nmax];
priority_queue<PI, vector < PI >, greater < PI > >coada;
void dijkstra(int k)
{
D[k]=0;
coada.push({0,k});
while(!coada.empty())
{
int NodCurent=coada.top().second;
coada.pop();
for(auto i:G[NodCurent])
{
int Vecin=i.first;
int Cost=i.second;
if(D[NodCurent] + Cost < D[Vecin])
{
D[Vecin]=D[NodCurent] + Cost;
coada.push({D[Vecin],Vecin});
}
}
}
}
int main()
{
fcin>>N>>m;
for(int i=1; i<=m; i++)
{
fcin>>x>>y>>c;
G[x].push_back(make_pair(y,c));
}
for(int i=1; i<=N; i++)
D[i]=oo;
dijkstra(1);
for(int i=2; i<=N; i++)
if(D[i]==oo)
fcout<<0<<" ";
else
fcout<<D[i]<<" ";
}