Advertisement
Guest User

Untitled

a guest
Mar 21st, 2019
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.52 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. #define INF 1000000000
  5.  
  6. const int MAX_N = 100;
  7. int g[MAX_N][MAX_N];
  8.  
  9. int main() {
  10. #ifndef ONLINE_JUDGE
  11.     freopen("/home/nikita/CLionProjects/Algorithms/Contest3/B.txt", "r", stdin);
  12. #endif
  13.  
  14.     int n;
  15.     std::cin >> n;
  16.  
  17.     for (int i = 0; i < n; ++i) {
  18.         for (int j = 0; j < n; ++j) {
  19.             int weight;
  20.             std::cin >> weight;
  21.  
  22.             if (i == j) {
  23.                 g[i][i] = 0;
  24.             } else if (weight == 0) {
  25.                 g[i][j] = INF;
  26.             } else {
  27.                 g[i][j] = weight;
  28.             }
  29.         }
  30.     }
  31.  
  32.     for (int k = 0; k < n; ++k) {
  33.         for (int i = 0; i < n; ++i) {
  34.             for (int j = 0; j < n; ++j) {
  35.                 if (g[i][k] < INF && g[k][j] < INF) {
  36.                     g[i][j] = std::min(g[i][j], g[i][k] + g[k][j]);
  37.                 }
  38.             }
  39.         }
  40.     }
  41.     for (int i = 0; i < n; ++i) {
  42.         for (int j = 0; j < n; ++j) {
  43.             for (int t = 0; t < n; ++t) {
  44.                 if (g[i][t] < INF && g[t][t] < 0 && g[t][j] < INF) {
  45.                     g[i][j] = -INF;
  46.                 }
  47.             }
  48.         }
  49.     }
  50.  
  51.  
  52.     for (int i = 0; i < n; ++i) {
  53.         for (int j = 0; j < n; ++j) {
  54.             int value = 1;
  55.             if (g[i][j] == INF) {
  56.                 value = 0;
  57.             } else if (g[i][j] == -INF) {
  58.                 value = 2;
  59.             }
  60.             std::cout << value << " ";
  61.         }
  62.         std::cout << "\n";
  63.     }
  64.     return 0;
  65. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement