Advertisement
Guest User

Untitled

a guest
Apr 5th, 2020
281
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.29 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define ff first
  4. #define ss second
  5.  
  6. int vis[1000009], c;
  7. vector<int> adj[1000009];
  8.  
  9. int bfs(int node, int s)
  10. {
  11.     pair<int, int> p;
  12.     queue<pair<int, int>> q;
  13.     if(vis[node] != 0 && vis[node] != c)
  14.         return 0;
  15.     vis[node] = c;
  16.     q.push({0, node});
  17.  
  18.     while(!q.empty())
  19.     {
  20.         p = q.front();
  21.         q.pop();
  22.  
  23.         if(p.ff >= s)
  24.             break;
  25.         for(auto u : adj[p.ss])
  26.         {
  27.             if(vis[u] != 0 && vis[u] != c)
  28.                 return 0;
  29.             if(vis[u] == c)
  30.                 continue;
  31.             vis[u] = c;
  32.             q.push({p.ff+1, u});
  33.         }
  34.  
  35.     }
  36.     return 1;
  37. }
  38.  
  39. int main()
  40. {
  41.     int t, n, r, m, i, j, u, v, k, s, f;
  42.     cin >> t;
  43.     while(t--)
  44.     {
  45.         cin >> n >> r >> m;
  46.         for(i = 0; i <= n; i++)
  47.         {
  48.             adj[i].clear();
  49.             vis[i] = 0;
  50.         }
  51.         for(i = 0; i < r; i++)
  52.         {
  53.             cin >> u >> v;
  54.             adj[u].push_back(v);
  55.             adj[v].push_back(u);
  56.         }
  57.         c = 0;
  58.         f = 1;
  59.         for(i = 0; i < m; i++)
  60.         {
  61.             cin >> k >> s;
  62.             c++;
  63.             f = min(f, bfs(k, s));
  64.         }
  65.  
  66.         cout << (f? "Yes" : "No") << endl;
  67.     }
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement