Submission #1289706

#TimeUsernameProblemLanguageResultExecution timeMemory
1289706ayemanNorela (info1cup18_norela)C++20
50 / 100
1096 ms580 KiB
#include <bits/stdc++.h>
#define int long long int

using namespace std;

int32_t main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    int n, m;
    cin >> n >> m;
    vector<vector<int>> v(m);

    for (int i = 0; i < m; ++i) {
        int q;
        cin >> q;
        for (int j = 0; j < q; ++j) {
            int x;
            cin >> x;
            v[i].push_back(x - 1); 
        }
    }
    vector<int> mxv;
    int a = 1LL << m,mn=m+1; 

    for (int i = 0; i < a; ++i) { 
        vector<int> v2(n, 0);
        vector<int> ind;
        int cnt = 0;

        for (int j = 0; j < m; ++j) {
            
            if ((i >> j) & 1) {
                
                ind.push_back(j + 1);
                cnt++;

                for (int x : v[j]) {
                    v2[x]++;
                }
            }
        }
        bool b = true;
        for (int k = 0; k < n; ++k) {
            if (v2[k] % 2 == 0) {
                b = false;
                break;
            }
        }
        if (b) {
            if (cnt < mn) {
                mn = cnt;
                mxv = ind;
            } else if (cnt == mn) {
                if (mxv.empty() || ind < mxv) {
                    mxv = ind;
                }
            }
        }
    }
    cout << mn << "\n";
    int r=mxv.size() - 1;
    for (int i = 0; i <= r; ++i) {
        cout << mxv[i];
        if (i < r) {
            cout<<" ";
        }
    }
    
    cout << endl;

    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...