MAGCARI

Joyful

Oct 31st, 2022
861
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.05 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. vector<int> g[10010];
  4. int gr[10010];
  5. vector<int > memberInGroup[10010];
  6. void dfs(int u,int num){
  7.     if(gr[u])   return ;
  8.     gr[u] = num;
  9.     memberInGroup[num].push_back(u);
  10.     for(auto x:g[u]){
  11.         dfs(x,num);
  12.     }
  13. }
  14. int main()
  15. {
  16.     cin.tie(0)->sync_with_stdio(0);
  17.     cin.exceptions(cin.failbit);
  18.     int n, m, q, u, v, mark, st, en;
  19.     cin >> n >> m >> q;
  20.     while (m--)
  21.     {
  22.         cin >> u >> v >> mark;
  23.         if (mark)
  24.         {
  25.             g[u].push_back(v);
  26.             g[v].push_back(u);
  27.         }
  28.     }
  29.     for(int i=1;i<=n;i++)
  30.         dfs(i,i);
  31.     for(int i=1;i<=n;i++)
  32.         sort(memberInGroup[i].begin(),memberInGroup[i].end());
  33.     while (q--)
  34.     {
  35.         cin >> st >> en;
  36.         if(gr[st] == gr[en]){
  37.             cout << "1 " << en << '\n';
  38.             continue;
  39.         }
  40.         cout << "0 ";
  41.         if(memberInGroup[st][0] != st)  cout << memberInGroup[st][0] << '\n';
  42.         else if(memberInGroup[st][0] == st){
  43.             if(memberInGroup[st].size() > 1)    cout << memberInGroup[st][1] << '\n';
  44.             else                                cout << "-1\n";
  45.         }
  46.     }
  47.     return 0;
  48. }
  49. /*
  50. 3 2 3
  51. 1 2 1
  52. 2 3 0
  53. 1 3
  54. 1 2
  55. 3 2
  56. */
  57.  
Advertisement
Add Comment
Please, Sign In to add comment