답안 #288542

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
288542 2020-09-01T15:42:16 Z errorgorn "The Lyuboyn" code (IZhO19_lyuboyn) C++14
34 / 100
71 ms 28996 KB
//雪花飄飄北風嘯嘯
//天地一片蒼茫

#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#include <ext/rope>
using namespace std;
using namespace __gnu_pbds;
using namespace __gnu_cxx;
#define ll long long
#define ii pair<ll,ll>
#define iii pair<ii,ll>
#define fi first
#define se second
#define endl '\n'
#define debug(x) cout << #x << " is " << x << endl

#define rep(x,start,end) for(auto x=(start)-((start)>(end));x!=(end)-((start)>(end));((start)<(end)?x++:x--))
#define all(x) (x).begin(),(x).end()
#define sz(x) (int)(x).size()

#define indexed_set tree<ll,null_type,less<ll>,rb_tree_tag,tree_order_statistics_node_update>
//change less to less_equal for non distinct pbds, but erase will bug

mt19937 rng(chrono::system_clock::now().time_since_epoch().count());

int n,k,t;
string s;

void flip(string &i,int times){
	rep(x,1,times+1) i[sz(i)-x]^=1;
}

vector<string> dp(int i,int j){
	if (j==1){
		vector<string> v;
		string st;
		rep(x,0,i) st+="0";
		v.push_back(st);
		
		rep(x,0,i){
			int temp=sz(v);
			rep(y,temp,0){
				v.push_back(v[y]);
				v.back()[x]='1';
			}
		}
		
		return v;
	}
	else{
		auto v=dp(i-2,j-2);
		vector<string> res;
		
		int t=sz(v);
		rep(x,0,t){
			if (x%2==0) res.push_back("00"+v[x%t]);
			else res.push_back("11"+v[x%t]);
		}
		rep(x,1,t+1){
			if (x%2==0) res.push_back("01"+v[x%t]);
			else res.push_back("10"+v[x%t]);
		}
		rep(x,0,t){
			if (x%2==0) res.push_back("11"+v[x%t]);
			else res.push_back("00"+v[x%t]);
			
			flip(res.back(),j-1);
		}
		rep(x,1,t+1){
			if (x%2==0) res.push_back("10"+v[x%t]);
			else res.push_back("01"+v[x%t]);
			
			flip(res.back(),j-1);
		}
		
		
		return res;
	}
}

int main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	cin.exceptions(ios::badbit | ios::failbit);
	
	cin>>n>>k>>t;
	cin>>s;
	
	if (k%2==0){
		cout<<"-1"<<endl;
		return 0;
	}
	
	auto v=dp(n,k);
	
	int idx;
	rep(x,0,sz(v)) if (v[x]==s) idx=x;
	
	cout<<sz(v)<<endl;
	rep(x,0,sz(v)) cout<<v[(x+idx)%sz(v)]<<endl;
}

Compilation message

lyuboyn.cpp: In function 'int main()':
lyuboyn.cpp:103:27: warning: 'idx' may be used uninitialized in this function [-Wmaybe-uninitialized]
  103 |  rep(x,0,sz(v)) cout<<v[(x+idx)%sz(v)]<<endl;
      |                         ~~^~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 384 KB Ok
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 384 KB Ok
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 384 KB Ok
2 Correct 1 ms 384 KB Ok
3 Correct 0 ms 384 KB Ok
4 Correct 0 ms 384 KB Ok
5 Correct 0 ms 384 KB Ok
6 Correct 0 ms 384 KB Ok
7 Correct 0 ms 384 KB Ok
8 Correct 0 ms 384 KB Ok
# 결과 실행 시간 메모리 Grader output
1 Correct 56 ms 21844 KB Ok
2 Correct 26 ms 10984 KB Ok
3 Correct 1 ms 384 KB Ok
4 Correct 0 ms 384 KB Ok
5 Correct 0 ms 384 KB Ok
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 512 KB Ok
2 Correct 2 ms 892 KB Ok
3 Correct 31 ms 13036 KB Ok
4 Correct 16 ms 6640 KB Ok
5 Correct 1 ms 384 KB Ok
6 Correct 1 ms 512 KB Ok
7 Correct 6 ms 2032 KB Ok
8 Correct 1 ms 384 KB Ok
# 결과 실행 시간 메모리 Grader output
1 Incorrect 71 ms 28996 KB Fail, not exactly k bits are different: line = 101983
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 56 ms 21844 KB Ok
2 Correct 26 ms 10984 KB Ok
3 Correct 1 ms 384 KB Ok
4 Correct 0 ms 384 KB Ok
5 Correct 0 ms 384 KB Ok
6 Correct 1 ms 512 KB Ok
7 Correct 2 ms 892 KB Ok
8 Correct 31 ms 13036 KB Ok
9 Correct 16 ms 6640 KB Ok
10 Correct 1 ms 384 KB Ok
11 Correct 1 ms 512 KB Ok
12 Correct 6 ms 2032 KB Ok
13 Correct 1 ms 384 KB Ok
14 Incorrect 71 ms 28996 KB Fail, not exactly k bits are different: line = 101983
15 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 38 ms 12936 KB Fail, not exactly k bits are different: line = 117
2 Halted 0 ms 0 KB -