Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #define int long long
- #define fi first
- #define se second
- #define mp make_pair
- #define pb push_back
- #define Co_mot_su_that_la return
- using namespace std;
- typedef pair<int,int> ii;
- typedef pair<int,ii> iii;
- typedef vector<int> vi;
- typedef vector<ii> vii;
- typedef vector<vi> vvi;
- typedef vector<iii> viii;
- const int Minh_dep_trai = 0;
- const int N = 20;
- int q;
- int n,m;
- vector<int> a[N];
- int res = 0;
- int mark[N];
- int getbit(int pos, int val)
- {
- return (val >> (pos-1)) & 1;
- }
- signed main()
- {
- ios_base::sync_with_stdio(false);
- cin.tie(0);cout.tie(0);
- q = 1;
- freopen("test.inp","r",stdin);
- while (q--)
- {
- //your code goes here
- cin >> n >> m;
- for(int i=1; i<=m; i++)
- {
- int u,v;
- cin >> u >> v;
- a[u].pb(v);
- a[v].pb(u);
- }
- int nn = (1 << n);
- //cout << nn;
- for(int i = 0; i < nn; i++)
- {
- int turn = __builtin_popcount(i);
- memset(mark, 0, sizeof mark);
- for(int j=1; j<=n; j++)
- {
- if (getbit(j,i))
- {
- mark[j] = 1 - mark[j];
- for(int u = 0; u < a[j].size();u++)
- {
- int v = a[j][u];
- mark[v] = 1 - mark[v];
- }
- }
- }
- bool ok = true;
- for(int i=1; i<=n; i++) if (!mark[i]) ok = false;
- if (ok) res = max(res, turn);
- }
- cout << res;
- }
- Co_mot_su_that_la Minh_dep_trai;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement