Advertisement
marek357

spojne skladowe

Jan 4th, 2018
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.67 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. using namespace std;
  4. int order[1000000];
  5. bool odwiedzony1[1000000];
  6. int post = 1;
  7. int silna=0;
  8. vector<int> wek[100000];
  9. vector<int> odwrocony[1000000];
  10. void dfs(int v){
  11.     odwiedzony1[v] = true;
  12.     for(int i = 0; i < wek[v].size(); i++){
  13.         if(!odwiedzony1[wek[v][i]]){
  14.             dfs(wek[v][i]);
  15.         }
  16.     }          
  17.  
  18. }
  19.  
  20. int n,m,a,b;
  21. int main(){
  22.     cin >> n >> m;
  23.     for(int j = 0; j < m; j++){
  24.         cin >> a >> b;
  25.         wek[a].push_back(b);
  26.         wek[b].push_back(a);
  27.         odwrocony[b].push_back(a);
  28.         odwrocony[a].push_back(b);
  29.     }
  30.     for(int i = 1; i <= n ; i++){
  31.         if(odwiedzony1[i]==false){
  32.             dfs(i);
  33.             silna++;
  34.         }
  35.      }
  36.  
  37.     cout << silna;
  38.  
  39. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement