Advertisement
Guest User

Untitled

a guest
Mar 20th, 2019
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.00 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. using namespace std;
  4. int main ()
  5. {
  6.     int n, m;
  7.     cin >> n >> m;
  8.     int p[n]; bool used[n];
  9.  
  10.     for (int i = 0; i < n; i++)
  11.     {
  12.         used[i] = false;
  13.     }
  14.  
  15.     vector <vector <int> > g(m);
  16.  
  17.     for (int i = 0, x; i < n - 1; i++)
  18.     {
  19.         cin >> x;
  20.         p[x] = i;
  21.     }
  22.  
  23.     int s;
  24.     cin >> s;
  25.  
  26.     for (int i = 0, a, b; i < n; i++)
  27.     {
  28.         cin >> a >> b;
  29.         g[a - 1].push_back(b - 1);
  30.         g[b - 1].push_back(a - 1);
  31.     }
  32.  
  33.     vector <int> v;
  34.     v.push_back(s);
  35.     int ans = n - 1;
  36.     used[s] = true;
  37.  
  38.     while (!v.empty())
  39.     {
  40.         int top = v[v.size() - 1];
  41.         v.pop_back();
  42.         for (int i = 0; i < g[top].size(); i++)
  43.         {
  44.             if (!used[g[top][i]])
  45.             {
  46.                 g[top][i] = true;
  47.                 v.push_back(g[top][i]);
  48.                 if (p[g[top][i]] < ans) ans = p[g[top][i]];
  49.             }
  50.         }
  51.     }
  52.  
  53.     cout << ans;
  54.  
  55.     return 0;
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement