Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #include <conio.h>
- using namespace std;
- int val[205], dis[205][205], trc[205][205];
- signed main() {
- #ifdef _DEBUG
- freopen("_in" , "r", stdin );
- //freopen("_out", "w", stdout);
- #endif
- ios::sync_with_stdio(0); cin.tie(0);
- memset(dis, 0x3f, sizeof(dis));
- int n, a, b; cin >> n >> a >> b;
- for (int i = 1; i <= n; i++) cin >> val[i];
- for (int u, v; cin >> u >> v; ) {
- trc[u][v] = v; trc[v][u] = u;
- dis[u][v] = dis[v][u] = abs(val[u] - val[v]);
- }
- for (int i = 1; i <= n; i++) dis[i][i] = 0;
- for (int k = 1; k <= n; k++)
- for (int i = 1; i <= n; i++)
- for (int j = 1; j <= n; j++) {
- int t = max(dis[i][k], dis[k][j]);
- if(dis[i][j] > t) {
- dis[i][j] = t;
- trc[i][j] = trc[i][k];
- }
- }
- if(!trc[a][b]) {
- cout << -1 << '\n';
- return 0;
- }
- cout << dis[a][b] << '\n';
- while(a != b) cout << a << ' ', a = trc[a][b];
- cout << b << '\n';
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement