제출 #357589

#제출 시각아이디문제언어결과실행 시간메모리
357589kshitij_sodani"The Lyuboyn" code (IZhO19_lyuboyn)C++14
100 / 100
669 ms66492 KiB
//#pragma GCC optimize("Ofast,unroll-loops")
#include <bits/stdc++.h>
using namespace std;
typedef long long llo;
#define mp make_pair
#define pb push_back
#define a first 
#define b second
#define endl '\n'
int n,k,t;
vector<vector<int>> ans;
vector<vector<int>> solve(int n){
	if(n==1){
		return {{0},{1}};
		return {{0,0},{0,1},{1,1},{1,0}};
	}
	else{
		vector<vector<int>> aa=solve(n-1);
		vector<vector<int>> bb=solve(n-1);
		reverse(bb.begin(),bb.end());
		for(int i=0;i<aa.size();i++){
			aa[i].pb(0);
			bb[i].pb(1);
		}
		for(int i=0;i<bb.size();i++){
			aa.pb(bb[i]);
		}
		return aa;
	}
}
int it[20];
vector<vector<int>> solve2(int n){
	if(n==k+1){
		return ans;
	}
	else{
		vector<vector<int>> aa=solve2(n-1);
		vector<vector<int>> cur;
		for(int i=0;i<aa.size();i++){
			cur.pb(aa[i]);
			cur[i].pb(0);
		}
		int ind=-1;
		for(int j=0;j<n-1;j++){
			if(aa.back()[j]==1){
				ind=j;
				break;
			}
		}
		for(int i=0;i<aa.size();i++){
			vector<int> dd;
			for(int j=0;j<aa[i].size();j++){
				if(j==ind){
					dd.pb(aa[i][j]^1);
				}
				else{
					dd.pb(aa[i][j]);
				}
			}
			dd.pb(1);
			cur.pb(dd);
		}
		return cur;
	}
}


int main(){
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	cin>>n>>k>>t;
	string s;
	cin>>s;
	if(k%2==0){
		cout<<-1<<endl;
		return 0;
	}
/*	int cur=0;
	for(int i=0;i<(1<<n);i++){
		if(__builtin_popcount(i)==k){
			cur^=i;
			for(auto j=0;j<n;j++){
				if(cur&(1<<j)){
					cout<<1;
				}
				else{
					cout<<0;
				}
			}
			cout<<endl;
		}
	}
	return 0;
*/


	for(int i=0;i<n;i++){
		it[i]=s[i]-'0';
	}

	//if(k==1 or k==n-1){
		ans=solve(k+1);
		for(int i=1;i<(ans.size());i+=2){
			for(int j=0;j<k+1;j++){
				ans[i][j]^=1;
			}
		}
		cout<<(1<<n)<<endl;
		vector<vector<int>> ans2=solve2(n);
		for(auto j:ans2){
			for(int ii=0;ii<n;ii++){
				cout<<(j[ii]^it[ii]);
			}
			cout<<endl;
		}
		/*int ind=-1;
		int kk=0;
		if(k==n-1){
			kk=1;
		}
		for(int i=0;i<ans.size();i++){
			int st=1;
			for(int j=0;j<n;j++){
				if(ans[i][j]!=it[j]){
					st=0;
				}
			}
			if(st==1){
				ind=i;
			}
		}
		cout<<ans.size()<<endl;
	//	int cot=0;
		int cot=0;
		for(auto j:ans){
			for(int i=0;i<n;i++){
				if(cot==1 and kk==1){
					cout<<((it[i]^j[i])^1);
					continue;
				}
				cout<<(it[i]^j[i]);
			}
			cout<<endl;
			cot=1-cot;
		}*/
	//}
	
 
	return 0;
}

컴파일 시 표준 에러 (stderr) 메시지

lyuboyn.cpp: In function 'std::vector<std::vector<int> > solve(int)':
lyuboyn.cpp:21:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::vector<int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   21 |   for(int i=0;i<aa.size();i++){
      |               ~^~~~~~~~~~
lyuboyn.cpp:25:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::vector<int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   25 |   for(int i=0;i<bb.size();i++){
      |               ~^~~~~~~~~~
lyuboyn.cpp: In function 'std::vector<std::vector<int> > solve2(int)':
lyuboyn.cpp:39:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::vector<int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   39 |   for(int i=0;i<aa.size();i++){
      |               ~^~~~~~~~~~
lyuboyn.cpp:50:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::vector<int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   50 |   for(int i=0;i<aa.size();i++){
      |               ~^~~~~~~~~~
lyuboyn.cpp:52:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   52 |    for(int j=0;j<aa[i].size();j++){
      |                ~^~~~~~~~~~~~~
lyuboyn.cpp: In function 'int main()':
lyuboyn.cpp:103:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::vector<int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  103 |   for(int i=1;i<(ans.size());i+=2){
      |               ~^~~~~~~~~~~~~
#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...