Cod sursa(job #3362772)

Utilizator CorvinJudge0Corvin Judge CorvinJudge0 Data 12 august 2026 11:48:37
Problema Algoritmul lui Dijkstra Scor 70
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <utility>
#include <queue>
using namespace std;

#ifdef LOCAL
#define fin cin
#define fout cout
#else
ifstream fin("dijkstra.in");
ofstream fout("dijkstra.out");
#endif

vector<pair<int, long long>> adj[50001];
priority_queue<pair<long long, int>, vector<pair<long long, int>>, greater<pair<long long, int>>> pq;
vector<long long> costmin(50000, 1e18);

int main() {
	int n, m, a, b;
	long long c;
	fin >> n >> m;
	while (m--) {
		fin >> a >> b >> c;
		adj[a].push_back({b, c});
	}
	pq.push({0, 1});
	while (!pq.empty()) {
		auto [cost, nod] = pq.top();
		pq.pop();
		for (auto [vecin, cost_vecin]:adj[nod])
			if (cost + cost_vecin < costmin[vecin]) {
				costmin[vecin] = cost + cost_vecin;
				pq.push({cost + cost_vecin, vecin});
			}
	}
	for (int i=2; i<=n; i++)
		fout << (costmin[i] < 1e9 ? costmin[i] : 0) << ' ';
}