Quipex

temp2

Apr 3rd, 2017
428
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.98 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdio>
  3. #include <cstdlib>
  4. #include <vector>
  5. #include <cmath>
  6. #include <cstring>
  7. #include <string>
  8. #include <iterator>
  9. #include <iomanip>
  10. using namespace std;
  11.  
  12. #define sqr(x) ((x)*(x))
  13. #define cbr(x) ((x)*(x)*(x))
  14. #define rep(c, i, n) for((i)=(c); (i)<(n); (i)++)
  15. struct pt{long long x,y;};
  16. double vecmul(pt a, pt b){ /*Векторное умножение А*В*/ return (a.x*b.y - b.x*a.y); } //скалярное умножение a*b = |a|*|b|*cos(a,b)
  17.  
  18. double dist(double ax, double ay, double bx, double by) { return sqrt(sqr(ax - bx) + sqr(ay - by)); }
  19.  
  20. //DBG
  21. template<typename T, typename T2>void printarr(T  a[], T2 sz, T2 beg = 0) { for (T2 i = beg; i<sz; i++) cout << a[i] << " "; cout << endl; }
  22. #define DBG(a)         cout<<#a<<"="<<(a)<<"\n"
  23. #define DBG2(a,b)       cout<<#a<<"="<<(a)<<", "<<#b<<"="<<(b)<<"\n"
  24. #define DBG3(a,b,c)     cout<<#a<<"="<<(a)<<", "<<#b<<"="<<(b)<<", "<<#c<<"="<<(c)<<"\n"
  25.  
  26. //Files
  27. #define FILE_MODE(FILE) freopen(FILE".in", "r", stdin), freopen(FILE".out", "w", stdout)
  28.  
  29. //Constants
  30. #define PI    3.1415926535897932
  31. #define INF   1011111111
  32. #define LLINF 1000111000111000111LL
  33. #define eps   1e-14
  34. #define mod   1000000007
  35. #define ll long long
  36. #define ull unsigned long long
  37. //-------------------------------------------------
  38. #define N 100010
  39. //7 9 1 7 3 6 1 3 6 7 1 4 5 6  1 2 2 5 3 5  4 7
  40.  
  41. int n,m;
  42. vector<int> graph[N];
  43. int visited[N];
  44. void dfs(int v);
  45. int node=0;
  46.  
  47. int main(){
  48.     cin>>n>>m;
  49.     int i,x,y,j;
  50.     rep(0,i,m){
  51.         cin>>x>>y;
  52.         x--;y--;
  53.         graph[x].push_back(y);
  54.         graph[y].push_back(x);
  55.     }
  56.     memset(visited, 0, sizeof visited);
  57.     rep(0,i,n){
  58.         if(visited[i]==0){
  59.             node++;
  60.             dfs(i);
  61.         }
  62.     }
  63.     cout << node << endl;
  64.     return 0;
  65. }
  66.  
  67. void dfs(int v){
  68.     visited[v]=node;
  69.     for(int i=0;i<graph[v].size();i++){
  70.         if(visited[graph[v][i]]==0){
  71.             dfs(graph[v][i]);
  72.         }
  73.     }
  74. }
Advertisement
Add Comment
Please, Sign In to add comment