| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1313016 | neonglitch | Norela (info1cup18_norela) | C++20 | 4 ms | 6456 KiB |
#include <iostream>
#include <vector>
using namespace std;
typedef long long ll;
#define int ll
const int P=100,M=2e7;
ll s[P],pw2[P];
ll fnl[M],cnt[M],rev[M];
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]*2ll;
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+200,ap=pw2[m];
for(int mk=1;mk<pw2[m];mk++)
{
int x=(mk&-mk);
int xg=__lg(x);
fnl[mk]=(fnl[mk-x]^s[xg]);
cnt[mk]=(cnt[mk-x]+1);
rev[mk]=rev[mk-x]+pw2[m-1-xg];
if(fnl[mk]==(pw2[n]-1))
{
int cc=cnt[mk];
if(cc<cn)
{
cn=cc;
ap=rev[mk];
}
else if (cc==cn and rev[mk]>ap){
ap=mk;
}
}
}
cout<<cn<<endl;
for(int i=m-1;i>=0;i--)
{
if(ap&pw2[i])
{
cout<<m-i<<' ';
}
}
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... | ||||
