Submission #1137070

#TimeUsernameProblemLanguageResultExecution timeMemory
1137070HasanV11010238Norela (info1cup18_norela)C++20
100 / 100
485 ms412 KiB
#include <bits/stdc++.h>
#define ll long long
#define MAX 1000000
using namespace std;
int main(){
    ll n, m, c, a, va, va2;
    cin>>n>>m;
    vector<ll> q;
    for (int i = 0; i < m; i++){
        cin>>c;
        va = 0;
        for (int j = 0; j < c; j++){
            cin>>a;
            va = (va ^ (1LL<<(a - 1)));
        }
        q.push_back(va);
    }
    reverse(q.begin(), q.end());
    int ti = (1<<m);
    ll ans = -1, no = 10000, goal = (1LL<<n) - 1;
    for (int i = ti - 1; i >= 0; i--){
        if (__builtin_popcount(i) >= no) continue;
        ll res = 0, cnt = 0;
        for (int j = 0; j < m; j++){
            va = i & (1<<j);
            if (va != 0){
                res ^= q[j];
                cnt++;
            }
        }
        if (res == goal){
            if (cnt < no){
                ans = i;
                no = cnt;
            }
        }
    }
    cout<<no<<"\n";
    for (int i = m - 1; i >= 0; i--){
        va = ans & (1<<i);
        if (va != 0) cout<<m - i<<" ";
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...