Pagini recente » Cod sursa (job #1557697) | Cod sursa (job #2828620) | Cod sursa (job #323829) | Cod sursa (job #3285027) | Cod sursa (job #3206150)
#include <fstream>
#include <queue>
using namespace std;
using pii = pair<int, int>;
int main() {
ifstream f("pitici.in");
ofstream g("pitici.out");
int n, m, k, a, b, cost;
f >> n >> m >> k;
auto comp = [](pii &a, pii &b) {
if (a.second == b.second)
return a.first < b.first;
return a.second > b.second;
};
vector<vector<pii>> G(n + 1);
while (m--) {
f >> a >> b >> cost;
G[b].emplace_back(a, cost);
}
priority_queue<pii, vector<pii>, decltype(comp)> Q(comp);
for (auto &[nod, tot]: G[n])
Q.emplace(nod, tot);
while (!Q.empty()) {
auto [nod, tot] = Q.top();
Q.pop();
if (nod == 1) {
g << tot << ' ';
if (--k == 0)
break;
} else
for (auto &[nod2, pret]: G[nod])
Q.emplace(nod2, tot + pret);
}
}