#include #include #include using namespace std; int i = 0; void generate(int *p, int l, int r) { int tmp; if (l == r) tmp = (l + r) / 2; else tmp = (l + r) / 2 + 1; p[i] = tmp; i++; if (tmp > l) generate(p, l, tmp - 1); if (tmp < r) generate(p, tmp + 1, r); } int main(void) { int k; cin >> k; int n = pow(2, k) - 1; int *p = new int[n]; generate(p, 1, n); for (int j = 0; j < n; j++) cout << p[j] << " "; cout << endl; return 0; }