给定一棵包含 n n n 个结点(编号 1 ∼ n 1∼n 1∼n)的完全二叉树的层序遍历序列,请按照从左到右的顺序输出该树第 k k k 层的全部结点编号。
输入格式
第一行包含整数 n n n。
第二行包含 n n n 个整数,表示该二叉树的层序遍历序列。
第三行包含整数 k k k。
输出格式
共一行,按照从左到右的顺序输出该树第 k k k 层的全部结点编号。
数与数之间用单个空格隔开。
若无该层结点,则输出 EMPTY
。
数据范围
1 ≤ n ≤ 1000 , 1≤n≤1000, 1≤n≤1000,
1 ≤ k ≤ 20 1≤k≤20 1≤k≤20
输入样例:
4
1 2 3 4
2
输出样例:
2 3
#include<iostream>
using namespace std;
const int N = 1010;
int n, k;
int a[N];
int main(){
cin >> n;
for(int i = 1; i <= n; i++)
cin >> a[i];
cin >> k;
bool flag = true;
for(int i = 1 << (k-1); i < 1 << k && i <= n; i++)
cout << a[i] << ' ', flag = false;
if(flag) puts("EMPTY");
return 0;
}