Untitled
unknown
plain_text
7 months ago
1.1 kB
1
Indexable
Never
#include <bits/stdc++.h> using namespace std; typedef long long int ll; #define endl "\n" const double PI = 3.14159265358979; const ll INF = 1e18 + 7; const ll MOD = 1e9 + 7; const ll nax = 2505; const int LOG = 25; void solve() { int n, m, q; cin >> n >> m >> q; ll dist[n][n]; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { dist[i][j] = INF; } dist[i][i] = 0; } for (int i = 0; i < m; i++) { int a, b, c; cin >> a >> b >> c; a--;b--; dist[a][b] = dist[b][a] = min(dist[a][b], 1LL * c); } for (int k = 0; k < n; k++) { for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { dist[i][j] = min(dist[i][j], dist[i][k] + dist[k][j]); } } } while(q--) { int a, b; cin >> a >> b; cout << (dist[a - 1][b - 1] >= INF ? -1 : dist[a - 1][b - 1]) << endl; } } signed main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); // int t; cin >> t; while(t--) solve(); return 0; }
Leave a Comment