diff --git a/AcWing/853/853.cpp b/AcWing/853/853.cpp new file mode 100644 index 00000000..2f41453e --- /dev/null +++ b/AcWing/853/853.cpp @@ -0,0 +1,34 @@ +#include + +using namespace std; + +struct node { + int u, v, w; +} g[10005]; + +int n, m, k, dist[505], backup[505]; + +void bellman_ford() { + memset(dist, 0x3f, sizeof(dist)); + dist[1] = 0; + for (int i = 1; i <= k; i++) { + memcpy(backup, dist, sizeof(dist)); + for (int j = 1; j <= m; j++) { + dist[g[j].v] = min(dist[g[j].v], backup[g[j].u] + g[j].w); + } + } +} + +int main() { + cin >> n >> m >> k; + for (int i = 1; i <= m; i++) { + cin >> g[i].u >> g[i].v >> g[i].w; + } + bellman_ford(); + if (dist[n] > 0x1f1f1f1f) { + cout << "impossible" << endl; + } else { + cout << dist[n] << endl; + } + return 0; +}