#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<ll, ll> pll;
ll n, m, k, u, v, w, dis1[1025], dis2[1025], vis[1025];
priority_queue<pll, vector<pll>, greater<pll>> q;
vector<pll> g[1025], e[1025];
void dijkstra() {
memset(dis2, 0x3f, sizeof dis2);
dis2[1] = 0;
q.push({0, 1});
while (!q.empty()) {
u = q.top().second;
q.pop();
if (vis[u]) continue;
vis[u] = 1;
for (auto a : e[u]) {
v = a.first, w = a.second;
if (dis2[u] + w < dis2[v]) {
dis2[v] = dis2[u] + w;
q.push({dis2[v], v});
}
}
}
}
void A() {
q.push({dis2[n], n});
while (!q.empty()) {
u = q.top().second;
q.pop();
if (u == 1) {
cout << dis1[1] << "\n";
if (!(--k)) exit(0);
}
for (auto a : g[u]) {
v = a.first, w = a.second;
dis1[v] = dis1[u] + w;
q.push({dis1[v] + dis2[v], v});
}
}
}
int main() {
cin >> n >> m >> k;
for (int i = 1; i <= m; i++) {
cin >> u >> v >> w;
g[u].push_back({v, w});
e[v].push_back({u, w});
}
dijkstra();
A();
for (int i = 1; i <= k; i++) cout << "-1\n";
return 0;
}
就AC了一个测试点