Submission #1289722

#TimeUsernameProblemLanguageResultExecution timeMemory
1289722dirtblockNorela (info1cup18_norela)C++20
100 / 100
306 ms580 KiB
#include <bits/stdc++.h>
#define int long long
using namespace std;

int n,m;
vector<int> a(3005,0);
int mn=LLONG_MAX;
vector<int> ans,cur;

void find(int x,int p) {
	if(x==m) {
		if(p==pow(2,n)-1&&(int)cur.size()<=mn) {
			mn=cur.size();
			ans=cur;
		}
		return;
	}
	find(x+1,p);
	cur.push_back(x);
	find(x+1,p^a[x]);
	cur.pop_back();
}

signed main() {
	std::ios_base::sync_with_stdio(false);
	cin.tie(NULL); cout.tie(NULL);
	
	cin>>n>>m;
	a.resize(m);
	for(int i=0; i<m; i++) {
		int x; cin>>x;
		for(int j=0; j<x; j++) {
			int g; cin>>g;
			a[i]|=(int)pow(2,g-1);
		}
	}
	find(0,0);
	cout<<mn<<"\n";
	for(int x:ans) cout<<x+1<<" ";
	
	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...