Submission #1289717

#TimeUsernameProblemLanguageResultExecution timeMemory
1289717dirtblockNorela (info1cup18_norela)C++20
0 / 100
5 ms444 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; } if((int)cur.size()==mn) { for(int i=0; i<mn; i++) { if(cur[i]<ans[i]) { ans=cur; break; } if(ans[i]>cur[i]) break; } } 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]+=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...