Submission #1313016

#TimeUsernameProblemLanguageResultExecution timeMemory
1313016neonglitchNorela (info1cup18_norela)C++20
0 / 100
4 ms6456 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)

norela.cpp:9:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
    9 | main()
      | ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...