Submission #1187044

#TimeUsernameProblemLanguageResultExecution timeMemory
1187044PieArmy"The Lyuboyn" code (IZhO19_lyuboyn)C++20
19 / 100
171 ms7588 KiB
#include<bits/stdc++.h>
typedef long long ll;
#define pb push_back
#define fr first
#define sc second
#define endl '\n'
using namespace std;

int n,k,t;
int s;
vector<int>ans;
int var[1<<18];
int basis[18];

int local=0;

void yaz(){
	int x=ans.back()^s;
	if(local)if(var[x])assert(0);
	var[x]=1;
	for(int i=0;i<n;i++){
		cout<<!!(x&(1<<i));
	}
	cout<<endl;
}

int main(){
	ios_base::sync_with_stdio(false);cin.tie(NULL);
	if(local)freopen("tc.out","w",stdout);
	if(local)freopen("tc.in","r",stdin);
	cin>>n>>k>>t;
	for(int i=0;i<n;i++){
		char c;cin>>c;
		if(c=='1'){
			s+=(1<<i);
		}
	}
	if(n<=k||(k&1)==0){
		cout<<-1;
		return 0;
	}
	cout<<(1<<n)<<endl;
	ans.pb(0);
	yaz();
	int cur;
	for(int i=0;i<(1<<n);i++){
		if(__builtin_popcount(i)!=k)continue;
		cur=i;
		for(int j=0;j<n;j++)basis[j]=0;
		while(true){
			int y=cur;
			for(int j=n-1;j>=0;j--){
				if((y&(1<<j))==0)continue;
				if(basis[j]==0){
					basis[j]=y;
					break;
				}
				else y^=basis[j];
			}
			cur=(cur>>1)|((cur&1)<<(n-1));
			if(cur==i)break;
		}
		bool b=true;
		for(int j=0;j<n;j++){
			if(basis[j]==0){
				b=false;
				break;
			}
		}
	}
	for(int i=0;i<n;i++){
		for(int j=ans.size()-1;j>=0;j--){
			ans.pb(ans[j]^cur);
			yaz();
		}
		cur=(cur>>1)|((cur&1)<<(n-1));
	}
}

Compilation message (stderr)

lyuboyn.cpp: In function 'int main()':
lyuboyn.cpp:29:25: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   29 |         if(local)freopen("tc.out","w",stdout);
      |                  ~~~~~~~^~~~~~~~~~~~~~~~~~~~~
lyuboyn.cpp:30:25: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   30 |         if(local)freopen("tc.in","r",stdin);
      |                  ~~~~~~~^~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...