Pagini recente » Cod sursa (job #3352853) | Cod sursa (job #763858) | Cod sursa (job #3352453)
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream cin("dijkstra.in");
ofstream cout("dijkstra.in");
struct salut {
int cost;
int nod;
bool operator < (const salut & other) const {
return cost < other.cost;
}
};
int n, m;
vector<salut> G[100001];
int d[100001];
void dijkstra() {
for(int i = 2; i <= n; ++i) d[i] = 1e9;
priority_queue<salut> pq;
pq.push({0, 1});
while(pq.size()) {
salut nod = pq.top();
pq.pop();
for(auto nodnou : G[nod.nod]) {
if(d[nod.nod] + nodnou.cost < d[nodnou.nod]) {
d[nodnou.nod] = d[nod.nod] + nodnou.cost;
pq.push({d[nodnou.nod], nodnou.nod});
}
}
}
}
int main() {
cin >> n >> m;
for(int i = 0; i < m; ++i) {
int a, b, c;
cin >> a >> b >> c;
G[a].push_back({c, b});
}
dijkstra();
for(int i = 2; i <= n; ++i) {
cout << d[i] << ' ';
}
}