Pagini recente » Cod sursa (job #1986354) | Cod sursa (job #2126919) | Cod sursa (job #617525) | Cod sursa (job #2974842) | Cod sursa (job #2147825)
#include <fstream>
#include <vector>
#include <queue>
#include <cstring>
#define nod second
#define cost first
#define INF 0x3f3f3f3f
using namespace std;
ifstream fin ("dijkstra.in");
ofstream fout ("dijkstra.out");
vector < pair < int, int > > G[50005];
priority_queue < pair < int , int >, vector < pair < int, int > >, greater < pair < int, int > > > pq;
pair <int,int> aux;
int N, M, i, j, x, y, z, fv[50005];
int main()
{
fin >> N >> M;
while( i < M )
{
fin>>x>>y>>z;
G[x].push_back(make_pair( z, y ) );
i++;
}
pq.push( make_pair(0,1) );
while( ! pq.empty() )
{
aux=pq.top();
pq.pop();
///fout<<aux.nod<<" "<<aux.cost<<'\n';
if( !fv[ aux.nod ] )
{
fv[aux.nod]=aux.cost;
for( i = 0 ; i < G[aux.nod].size() ; i++ )
{
if( !fv[ G[aux.nod][i].nod ] )
pq.push( make_pair(aux.cost + G[aux.nod][i].cost,G[aux.nod][i].nod));
}
}
}
for( i = 2 ; i <= N ; i++ )
{
/*fout<<i<<" : ";
for( j = 0 ; j < G[i].size() ; j++ )
{
fout<< G[i][j].nod<<"-"<<G[i][j].cost<<" ";
}
fout<<'\n';*/
fout<<fv[i]<<" ";
}
return 0;
}