题解 | #树查找#
树查找
http://www.nowcoder.com/practice/9a10d5e7d99c45e2a462644d46c428e4
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
using namespace std;
int num[1001];
//void dfs(int i, int td) {
// if (td == d && i <= n) {
// //flag = true;
// cout << num[i] << " ";
// return;
// }
// else {
// dfs(i * 2, td + 1);
// dfs(i * 2 + 1, td + 1);
// }
//}
int main()
{
int n, d;
while (cin >> n) {
memset(num, 0, sizeof(num));
for (int i = 1; i <= n; ++i)
cin >> num[i];
cin >> d;
int start = pow(2, d - 1);
if (start <= n)
for (int i = start; i < 2 * start; ++i)
cout << num[i] << " ";
else
cout << "EMPTY";
cout << endl;
}
}