Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #define SYNC ios::sync_with_stdio(0);
- #define F first
- #define S second
- #define endl '\n'
- using namespace std;
- using ll = long long int;
- using ii = pair<int, int>;
- using vii = vector<ii>;
- using vi = vector<int>;
- using graph = vector<vi>;
- const int INF = 0x3f3f3f3f;
- const int MAXN = 100010;
- const ll mod = 1000000007;
- const double eps = 0.000000001;
- graph g;
- int seen[MAXN];
- int degree[MAXN];
- int ans = 1;
- int dfs(int i) {
- int nodes = 0, nds = -1;
- seen[i] = 1;
- if (i && degree[i] == 1) {
- return 1;
- }
- for (auto a : g[i]) {
- if(!seen[a]) {
- int b = dfs(a);
- nodes += b;
- if (nds == -1) nds = b;
- if (nds != b) {
- ans = 0;
- break;
- }
- }
- }
- return nodes+1;
- }
- int main() {
- SYNC
- int n, u, v;
- cin >> n;
- g.assign(n+1, vi());
- for (int i = 0; i < n; ++i) {
- cin >> u >> v;
- degree[u]++;
- degree[v]++;
- g[u].push_back(v);
- g[v].push_back(u);
- }
- //cout << endl;
- dfs(0);
- string s = "mal";
- if (ans) s = "bem";
- cout << s << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment