egogoboy

Издевательство

Jul 17th, 2022
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.03 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <vector>
  4. #include <string>
  5. #include <queue>
  6. using namespace std;
  7.  
  8. int Min = 1000000;
  9.  
  10. void dfs(int u, int du, int l, int st, int w, vector<int>& com, vector<vector<int>>& v) {
  11.  
  12.     com[u] = 1;
  13.  
  14.     if (l < 2) {
  15.         for (int i = 0; i < v.size(); ++i) {
  16.             if (v[u][i] != 0) {
  17.                 dfs(i, u, l + 1, st, w + v[u][i], com, v);
  18.             }
  19.         }
  20.  
  21.     }
  22.     else {
  23.         if (v[u][st] != 0 && st != du) {
  24.             Min = min(Min, w + v[u][st]);
  25.         }
  26.     }
  27.  
  28. }
  29.  
  30. int main() {
  31.  
  32.     std::ifstream fin("input.txt");
  33.     std::ofstream fout("output.txt");
  34.  
  35.     int n;
  36.     fin >> n;
  37.     vector<vector<int>> v(n, vector<int>(n, 0));
  38.  
  39.     for (int i = 0; i < n; ++i) {
  40.         for (int j = 0; j < n; ++j)
  41.             fin >> v[i][j];
  42.     }
  43.  
  44.     vector<int> com(n, 0);
  45.  
  46.     for (int i = 0; i < n; ++i) {
  47.  
  48.         com[i] = 1;
  49.         dfs(i, i, 0, i, 0, com, v);
  50.         com[i] = 2;
  51.  
  52.     }
  53.  
  54.     fout << Min << endl;
  55.     return 0;
  56.  
  57. }
Advertisement
Add Comment
Please, Sign In to add comment