Advertisement
Guest User

Untitled

a guest
Mar 20th, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.65 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. vector <vector <int> > lista;
  5. bool odwiedzony[200005];
  6. int odl[200005];
  7. int m, n, you, grupy=1;
  8.  
  9. void cler(){
  10.     for(int i=0; i<n; i++){
  11.         lista[i].clear();
  12.         lista[i].shrink_to_fit();
  13.     }
  14.     lista.shrink_to_fit();
  15. }
  16. void input(){
  17.     cin>>n>>m;
  18.     lista.resize(n+1);
  19.     for(int i=0; i<m; i++){
  20.         int a, b;
  21.         cin>>a>>b;
  22.         lista[a].push_back(b);
  23.         lista[b].push_back(a);
  24.     }
  25.     cin>>you;
  26. }
  27. void bfs_you(){
  28.     queue <int> kolejka;
  29.     kolejka.push(lista[you]);
  30.     odl[you]=0;
  31.     while(!kolejka.empty()){
  32.         odwiedzony[kolejka.front()]=true;
  33.         for(int i=0; i<lista[kolejka.front()].size(); i++){
  34.             if(!odwiedzony[lista[kolejka.front()][i]]){
  35.                 odl[lista[kolejka.front()][i]]=odl[lista[kolejka.front()]]+1;
  36.                 kolejka.push(lista[kolejka.front()][i]);
  37.             }
  38.         }
  39.         kolejka.pop();
  40.     }
  41. }
  42.  
  43. void bfs_grupy{
  44.     for(int i=1; i<=n; i++){
  45.         if(!odwiedzony[i]){
  46.             queue <int> kolejka;
  47.             kolejka.push(lista[i]);
  48.             while(!kolejka.empty()){
  49.                 odwiedzony[kolejka.front()]=true;
  50.                 for(int j=0; j<lista[kolejka.front()].size(); j++){
  51.                     if(!odwiedzony[lista[kolejka.front()][j]]){
  52.                         kolejka.push(lista[kolejka.front()][j]);
  53.                 }
  54.                 kolejka.pop();
  55.             }
  56.             grupy++;
  57.         }
  58.  
  59.     }
  60. }
  61. }
  62.  
  63. void test(){
  64.     input();
  65.     bfs();
  66.     cler();
  67. }
  68.  
  69. int main(){
  70.     int z;
  71.     cin>>z;
  72.     for(int i=0; i<z; i++){
  73.         test();
  74.     }
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement