Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- const int N = 105;
- const int inf = 1e9;
- int n;
- int a[N][N], f[N][N];
- int main(){
- cin >> n;
- for (int i = 1; i <= n; i++) {
- for (int j = 1; j <= n; j++) {
- cin >> a[i][j];
- if (a[i][j] == -1) {
- f[i][j] = inf;
- } else {
- f[i][j] = a[i][j];
- }
- }
- }
- for (int k = 1; k <= n; k++) {
- for (int i = 1; i <= n; i++) {
- for (int j = 1; j <= n; j++) {
- f[i][j] = min(f[i][j], f[i][k] + f[k][j]);
- }
- }
- }
- int diameter = 0;
- for (int s = 1; s <= n; s++) {
- for (int t = 1; t <= n; t++) {
- if (f[s][t] == inf) continue;
- diameter = max(diameter, f[s][t]);
- }
- }
- cout << diameter << endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement