#include <bits/stdc++.h>
using namespace std;
#define MAX 1010<<2
int tr[MAX];
int main(){
int n ,d ;
while (~scanf("%d",&n)){
for (int i = 1 ; i <= n ; i++){
scanf("%d",&tr[i]);
}
scanf("%d",&d);
int start = pow(2,d-1);
int end = pow(2,d)-1;
for (int i = start ; i<= end && i<=n ; i++){
printf("%d",tr[i]);
if (i==end || i==n)
printf("\n");
else
printf(" ");
}
}
return 0;
}
不会的请看二叉树的性质。
题目链接:点击打开链接