Submission #1289681

#TimeUsernameProblemLanguageResultExecution timeMemory
1289681amodiNorela (info1cup18_norela)C++20
0 / 100
130 ms572 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...