Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- using ll = long long;
- using pi32 = pair<int, int>;
- using pi64 = pair<int64_t, int64_t>;
- using ti32 = tuple<int, int, int>;
- using ti64 = tuple<int64_t, int64_t, int64_t>;
- const int N = 400 + 5;
- const int INF = 1e9 + 7;
- int n, nE, nQ;
- int graph[N][N];
- int64_t d[N][N];
- void Floyd() {
- for (int i = 1; i <= n; ++i)
- for (int j = 1; j <= n; ++j)
- if (i != j)
- d[i][j] = graph[i][j];
- for (int k = 1; k <= n; ++k)
- for (int i = 1; i <= n; ++i)
- for (int j = 1; j <= n; ++j)
- d[i][j] = min(d[i][j], d[i][k] + d[k][j]);
- }
- int main() {
- #ifdef LOCAL
- freopen("in.txt", "r", stdin);
- #else
- freopen("CJKHAOSAT.inp", "r", stdin);
- freopen("CJKHAOSAT.out", "w", stdout);
- #endif
- ios_base::sync_with_stdio(false);
- cin.tie(nullptr);
- cin >> n >> nE >> nQ;
- fill_n(*graph, N * N, INF);
- for (int i = 1; i <= nE; i++) {
- int u, v, w; cin >> u >> v >> w;
- graph[u][v] = graph[v][u] = min(graph[u][v], w);
- }
- Floyd();
- while (nQ--) {
- int u, v; cin >> u >> v;
- cout << d[u][v] << '\n';
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment