| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1312854 | neonglitch | Norela (info1cup18_norela) | C++20 | 35 ms | 420 KiB |
#include <iostream>
#include <vector>
using namespace std;
typedef long long ll;
#define int ll
const int P=100;
ll s[P],pw2[P];
main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
pw2[0]=1;
for(int i=1;i<62;i++)pw2[i]=pw2[i-1]<<1;
int n,m;
cin>>n>>m;
for(int i=0;i<m;i++)
{
int sz;
cin>>sz;
for(int j=0;j<sz;j++)
{
int x;
cin>>x;
x--;
s[i]|=pw2[x];
}
}
int cn=m+2,ap=pw2[n];
vector<int> ans(m+2,m+2);
for(int mk=0;mk<pw2[m];mk++)
{
ll fnl=0;
int cnt=0;
vector<int> cur;
for(int i=0;i<m;i++)
{
if(mk&pw2[i])
{
cur.push_back(i+1);
cnt++;
fnl^=s[i];
}
}
if(fnl==((1ll<<n)-1))
{
if(cur<ans)
{
ans=cur;
}
if(cnt<cn)
{
cn=cnt;
ap=mk;
}
else if (cnt==cn and mk<ap){
ap=mk;
}
}
}
cout<<ans.size()<<endl;
for(auto x:ans)cout<<x<<' ';
cout<<endl;
// cout<<cn<<endl;
// for(int i=0;i<m;i++)
// {
// if((ap>>i)&1)
// {
// cout<<i+1<<' ';
// }
// }
// cout<<endl;
}
Compilation message (stderr)
| # | 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... | ||||
