Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- vector < vector < long long > > au;
- long long t, n, m, x, y, a, b;
- vector <long long> dp;
- vector <bool> mer;
- int main()
- {
- freopen ("stdc.in", "r", stdin);
- freopen ("stdc.out", "w", stdout);
- cin >> t;
- for (int i = 1; i <= t; i++)
- {
- long long mx = 0, ans = 0;
- vector <long long> ansv;
- au.clear();
- mer.clear();
- cin >> n >> m;
- au.resize(m+1);
- mer.resize(n+1);
- for (int j = 0; j < m; j++)
- {
- cin >> x;
- for (int z = 1; z <= x; z++)
- {
- cin >> y;
- au[j].push_back(y);
- }
- }
- for (int mask = 0; mask < (1 << m); mask++)
- {
- cout << "m " << mask << endl;
- mer.clear();
- b = 0;
- for (int v = 0; v < m; v++)
- {
- a = 0;
- if (((mask >> v) & 1) == 1)
- {
- for (int z = 0; z < (int)au[v].size(); z++)
- {
- if (mer[au[v][z]] == 0)
- {
- mer[au[v][z]] = 1;
- }
- else
- {
- a = 1;
- break;
- }
- }
- if (a == 1)
- break;
- b++;
- }
- }
- if (a != 1 && b > mx)
- {
- mx = b;
- ans = mask;
- /* for (int j = 1; j <= n; j++)
- cout << mer[j] << ' ';
- cout << endl;*/
- }
- }
- cout << mx << ' ' << ans << ' ' << endl;
- long long d = 1;
- while (ans != 0)
- {
- if (ans % 2 == 1)
- {
- cout << d << ' ';
- }
- ans = ans / 2;
- d++;
- }
- cout << endl;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement