#include <bits/stdc++.h>
using namespace std;
#define int long long
//her ceviz yuvarlaktır ama her yuvarlak ceviz değildir...
vector<vector<int>>a;
vector<vector<int>>yes;
int n;
int m;
vector<int>buyu;
void f(vector<int>suan,int i,vector<bool>b) {
if(i>m-1)return;
vector<int>v=suan;
vector<bool>c=b;
bool y=0;
int sz=a[i].size();
if(count(b.begin(),b.end(),0)==0)y=1;
if(y==1){yes.push_back(v);return;}
for(int j=0;j<sz;j++) {
if(b[a[i][j]]==0)b[a[i][j]]=1;
else b[a[i][j]]=0;
}
v.push_back(++i);
f(v,i,b);
f(suan,i,c);
}
int32_t main() {
ios_base::sync_with_stdio(false);
cin.tie(0);
cin>>n>>m;
vector<bool>bas(n,0);
a.resize(m);
for(int i=0;i<m;i++) {
int k;
cin>>k;
a[i].resize(k);
for(int j=0;j<k;j++) {
cin>>a[i][j];
a[i][j]--;
}
}
f({},0,bas);
vector<vector<int>>mn;
int sz=1e9;
for(auto go:yes){
if(go.size()<=sz){
//for(int i=0;i<go.size();i++)cout<<go[i]<<" ";
//if(go.size()<sz)mn.clear();
sort(go.begin(),go.end());
mn.push_back(go);
int tsz=go.size();
sz=min(tsz,sz);
}
}
/* for(int i=0;i<mn.size();i++) {
for(int j=0;j<mn[i].size();j++)cout<<mn[i][j]<<" ";
cout<<endl;
}*/
sort(mn.begin(),mn.end());
vector<int> mnn = {898989898,75842579};
for(int i=0;i<mn.size();i++){
if(mn[i].size()==sz)mnn=min(mnn,mn[i]);
}
cout<<mnn.size()<<endl;
for(int i=0;i<mnn.size();i++){
cout<<mnn[i]<<" ";
}
return 0;
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |