Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- using namespace std;
- vector<int> u, v;
- int n;
- int count(int r)
- {
- int res = 0;
- for(int i = 0; i < n; i++)
- if(r & (1 << i))res++;
- return res;
- }
- int main()
- {
- int m;
- cin >> n >> m;
- u.resize(m);
- v.resize(m);
- for(int i = 0; i < m; i++)
- {
- int a, b;
- cin >> a >> b;
- a--;
- b--;
- u[i] = a;
- v[i] = b;
- }
- vector<int> res(1 << n, -1);
- res[0] = 0;
- int mres = 0;
- for(int i = 1; i < (1 << n); i++)
- if(count(i) % 2 == 0)
- {
- for(int j = 0; j < m; j++)
- if(i & (1 << u[j]) && i & (1 << v[j]))
- res[i] = max(res[i], res[i ^ (1 << u[j]) ^ (1 << v[j])] + 1);
- mres = max(mres, res[i]);
- }
- cout << mres << '\n';
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment