Iamtui1010

just_one

Dec 8th, 2021
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.94 KB | None | 0 0
  1. //#include<bits/stdc++.h>
  2. #include<iostream>
  3. #include<cstdlib>
  4. #include<vector>
  5. #include<queue>
  6. #include<set>
  7.  
  8. #define long long long
  9. #define nln '\n'
  10.  
  11. const long N = 2*1e5+1;
  12.  
  13. using namespace std;
  14.  
  15. vector<bool> pic;
  16. vector<long> vtx;
  17. vector<vector<long>> mat(N);
  18. long mul, ans, vec = 0, edg = 0;
  19.  
  20. void dfs(long i)
  21. {
  22.     pic[i] = 1;
  23.     ++vec;
  24.     edg += vtx[i];
  25.     for (const auto j : mat[i])
  26.         if (!pic[j])
  27.         {
  28.             dfs(j);
  29.             break;
  30.         }
  31. }
  32.  
  33. int main()
  34. {
  35.     //freopen("just_one.inp", "r", stdin);
  36.     long n, m;
  37.     cin >> n >> m;
  38.     vtx.resize(n+1, 0);
  39.     for (long i = 1; i <= m; ++i)
  40.     {
  41.         long x, y;
  42.         cin >> x >> y;
  43.         ++vtx[x]; ++vtx[y];
  44.         mat[x].push_back(y);
  45.         mat[y].push_back(x);
  46.     }
  47.  
  48.     pic.resize(n+1, 0);
  49.     ans = 1;
  50.     for (long i = 1; i <= n; ++i)
  51.     {
  52.         if (!pic[i])
  53.         {
  54.             ans *= 2;
  55.             vec = 0; edg = 0;
  56.             dfs(i);
  57.             if (vec*2 != edg)
  58.             {
  59.                 ans = 0;
  60.                 break;
  61.             }
  62.         }
  63.     }
  64.  
  65.     cout << ans << nln;
  66.     return 0;
  67. }
Advertisement
Add Comment
Please, Sign In to add comment