Submission #641266

#TimeUsernameProblemLanguageResultExecution timeMemory
641266lto5Autobus (COCI22_autobus)C++14
70 / 70
128 ms9932 KiB
#include <bits/stdc++.h> using namespace std; long long dist[75][75]; long long f[75][75][75]; int n, m; int lim, q; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n >> m; memset(dist, 0x3f, sizeof(dist)); memset(f, 0x3f, sizeof(f)); const long long INF = dist[0][0]; for (int i = 0; i <= n; i++) dist[i][i] = 0, f[1][i][i] = 0; while (m--) { int u, v, w; cin >> u >> v >> w; dist[u][v] = min(dist[u][v], 1ll * w); f[1][u][v] = dist[u][v]; } cin >> lim >> q; lim = min(lim, n-1); for (int t = 2; t <= lim; t++) { for (int i = 1; i <= n; i++) { for (int j = 1; j <= n; j++) { for (int k = 1; k <= n; k++) f[t][i][j] = min(f[t][i][j], f[t - 1][i][k] + dist[k][j]); } } } while (q--) { int u, v; cin >> u >> v; long long ans = INF; for (int t = 0; t <= lim; t++) ans = min(ans, f[t][u][v]); if (ans == INF) cout << -1 << "\n"; else cout << ans << "\n"; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...