답안 #357588

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
357588 2021-01-24T08:12:00 Z kshitij_sodani "The Lyuboyn" code (IZhO19_lyuboyn) C++14
3 / 100
412 ms 54716 KB
//#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;
			}
		}
		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;
}

Compilation message

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){
      |               ~^~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 364 KB The output is neither -1 nor the length of the answer
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 364 KB Expected integer, but "0000" found
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 364 KB Ok
2 Correct 1 ms 384 KB Ok
3 Correct 1 ms 372 KB Ok
4 Correct 1 ms 384 KB Ok
5 Correct 1 ms 364 KB Ok
6 Correct 1 ms 364 KB Ok
7 Correct 1 ms 364 KB Ok
8 Correct 1 ms 364 KB Ok
# 결과 실행 시간 메모리 Grader output
1 Incorrect 401 ms 54716 KB Expected integer, but "000000000000000000" found
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 364 KB Expected integer, but "0000000" found
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 412 ms 54660 KB Expected integer, but "010101010011010100" found
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 401 ms 54716 KB Expected integer, but "000000000000000000" found
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 256 ms 33356 KB Expected integer, but "01011001010101101" found
2 Halted 0 ms 0 KB -