답안 #370435

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
370435 2021-02-24T02:59:37 Z Kevin_Zhang_TW "The Lyuboyn" code (IZhO19_lyuboyn) C++17
11 / 100
273 ms 7404 KB
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
#define pb emplace_back
#define AI(i) begin(i), end(i)
template<class T> bool chmin(T &a, T b) { return b < a && (a = b, true); }
template<class T> bool chmax(T &a, T b) { return a < b && (a = b, true); }
#ifdef KEV 
#define DE(args...) kout("[ " + string(#args) + " ] = ", args)
void kout() { cerr << endl; }
template<class T, class ...U> void kout(T a, U ...b) { cerr << a << ' ', kout(b...); }
template<class T> void debug(T L, T R) { while (L != R) cerr << *L << " \n"[next(L) == R], ++L; }
#else
#define DE(...) 0
#define debug(...) 0
#endif

const int MAX_N = 18, MAX_M = 1<<MAX_N;

int N, K, T, S;
int nxt[MAX_M];

void ob(int x) {
	for (int i = N-1;i >= 0;--i)
		cout << (x>>i&1);
	cout << '\n';
}
void divcons(int N, int f = 0) {
	static int lst[MAX_M];
	if (N == 0) {
		nxt[f] = f^1;
		nxt[f^1] = f;
		return;
	}
	divcons(N-1, f);
	divcons(N-1,f|(1<<N));

	for (int i = 0;i < (1<<(N));++i)
		lst[ nxt[f|i] ] = f|i;
	for (int i = 0;i < (1<<(N));++i)
		nxt[f|i] = lst[f|i];

	int X = f, Y = f|(1<<N);
	for (int i = 1;i < 1<<N;++i) {
		X = nxt[X];
		Y = nxt[Y];
	}
	DE(N, f, X);

	nxt[f|(1<<N)] = f;
	nxt[X] = X|(1<<N);


}
int32_t main() {
	ios_base::sync_with_stdio(0), cin.tie(0);
	cin >> N >> K >> T;
	{
		string v;
		cin >> v;
		DE(v);
		for (char i : v) 
			S = (S<<1) | (i-'0');
		DE(S);
	}

	if (K == 1 && T == 1) {
		divcons(N-1);
		cout << (1<<N) << '\n';
		for (int i = 0, x = S;i < 1<<N;++i) 
			ob(x), x = nxt[x];
	}
	else return -1;
}

Compilation message

lyuboyn.cpp: In function 'void divcons(int, int)':
lyuboyn.cpp:14:17: warning: statement has no effect [-Wunused-value]
   14 | #define DE(...) 0
      |                 ^
lyuboyn.cpp:48:2: note: in expansion of macro 'DE'
   48 |  DE(N, f, X);
      |  ^~
lyuboyn.cpp: In function 'int32_t main()':
lyuboyn.cpp:14:17: warning: statement has no effect [-Wunused-value]
   14 | #define DE(...) 0
      |                 ^
lyuboyn.cpp:61:3: note: in expansion of macro 'DE'
   61 |   DE(v);
      |   ^~
lyuboyn.cpp:14:17: warning: statement has no effect [-Wunused-value]
   14 | #define DE(...) 0
      |                 ^
lyuboyn.cpp:64:3: note: in expansion of macro 'DE'
   64 |   DE(S);
      |   ^~
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 364 KB Ok
# 결과 실행 시간 메모리 Grader output
1 Runtime error 0 ms 364 KB Execution failed because the return code was nonzero
# 결과 실행 시간 메모리 Grader output
1 Runtime error 0 ms 364 KB Execution failed because the return code was nonzero
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 273 ms 7404 KB Ok
2 Correct 129 ms 3692 KB Ok
3 Correct 1 ms 364 KB Ok
4 Correct 1 ms 364 KB Ok
5 Correct 1 ms 364 KB Ok
# 결과 실행 시간 메모리 Grader output
1 Runtime error 1 ms 364 KB Execution failed because the return code was nonzero
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 0 ms 364 KB Execution failed because the return code was nonzero
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 273 ms 7404 KB Ok
2 Correct 129 ms 3692 KB Ok
3 Correct 1 ms 364 KB Ok
4 Correct 1 ms 364 KB Ok
5 Correct 1 ms 364 KB Ok
6 Runtime error 1 ms 364 KB Execution failed because the return code was nonzero
7 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 1 ms 492 KB Execution failed because the return code was nonzero
2 Halted 0 ms 0 KB -