Pagini recente » Cod sursa (job #1740964) | Cod sursa (job #2234848) | Cod sursa (job #1296875) | test12312312323 | Cod sursa (job #2175566)
#include <fstream>
#include <vector>
#include <queue>
#define nmax 50001
using namespace std;
ifstream fin ("dijkstra.in");
ofstream fout ("dijkstra.out");
vector < pair < int, int > > g[nmax];
priority_queue < pair < int, int >, vector < pair < int, int > >, greater < pair < int, int > > > q;
pair < int, int > aux;
int n, m, i, x, y, c, viz[nmax];
int main ()
{
fin >> n >> m;
for (i = 1; i <= m; i++)
{
fin >> x >> y >> c;
g[x].push_back (make_pair (c, y));
}
q.push (make_pair (0, 1));
while (!q.empty ())
{
aux = q.top ();
q.pop ();
if (!viz[aux.second])
{
viz[aux.second] = aux.first;
for (i = 0; i < g[aux.second].size (); i++)
{
if (!viz[g[aux.second][i].second])
{
q.push (make_pair (aux.first + g[aux.second][i].first, g[aux.second][i].second));
}
}
}
}
for (i = 2; i <= n; i++)
{
fout << viz[i] << " ";
}
return 0;
}