Jeremiah_

Móbile - Neps

Jun 27th, 2019
403
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.22 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. #define SYNC ios::sync_with_stdio(0);
  4. #define F first
  5. #define S second
  6. #define endl '\n'
  7.  
  8.  
  9. using namespace std;
  10.  
  11. using ll = long long int;
  12. using ii = pair<int, int>;
  13. using vii = vector<ii>;
  14. using vi = vector<int>;
  15. using graph = vector<vi>;
  16. const int INF = 0x3f3f3f3f;
  17. const int MAXN = 100010;
  18. const ll mod = 1000000007;
  19. const double eps = 0.000000001;
  20.  
  21. graph g;
  22. int seen[MAXN];
  23. int degree[MAXN];
  24. int ans = 1;
  25.  
  26. int dfs(int i) {
  27.     int nodes = 0, nds = -1;
  28.     seen[i] = 1;
  29.  
  30.     if (i && degree[i] == 1) {
  31.         return 1;
  32.     }
  33.  
  34.     for (auto a : g[i]) {
  35.         if(!seen[a]) {
  36.             int b = dfs(a);
  37.             nodes += b;
  38.             if (nds == -1) nds = b;
  39.             if (nds != b) {
  40.                 ans = 0;
  41.                 break;
  42.             }
  43.         }
  44.     }
  45.     return nodes+1;
  46. }
  47.  
  48. int main() {
  49.     SYNC
  50.     int n, u, v;
  51.     cin >> n;
  52.     g.assign(n+1, vi());
  53.     for (int i = 0; i < n; ++i) {
  54.         cin >> u >> v;
  55.         degree[u]++;
  56.         degree[v]++;
  57.         g[u].push_back(v);
  58.         g[v].push_back(u);
  59.     }
  60.     //cout << endl;
  61.     dfs(0);
  62.     string s = "mal";
  63.     if (ans) s = "bem";
  64.     cout << s << endl;
  65.    
  66.     return 0;
  67. }
Advertisement
Add Comment
Please, Sign In to add comment