#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <math.h>
#include <string>
#include <string.h>
#include <vector>
#include <queue>
#include <stack>
#include <sstream>
using namespace std;
//1176
int n,d,dig[101];
int main(){
// freopen("input.txt","r",stdin);
while(scanf("%d",&n)!=EOF){
for(int i=1;i<=n;i++) scanf("%d",dig+i);
scanf("%d",&d);
int top=pow(2,d)-1;
int down=pow(2,d-1);
//printf("top=%d down=%d \n",top,down);
if(n>=top){
for(int i=down;i<=top;i++)
if(i==down) printf("%d",dig[i]);
else printf(" %d",dig[i]);
}
else if(n>=down&&n<top){
for(int i=down;i<=n;i++)
if(i==down) printf("%d",dig[i]);
else printf(" %d",dig[i]);
}
else{
printf("EMPTY");
}
printf("\n");
}
return 0;
}
/**************************************************************
Problem: 1176
User: cust123
Language: C++
Result: Accepted
Time:10 ms
Memory:1608 kb
****************************************************************/
题目1176:树查找
最新推荐文章于 2019-03-30 22:34:19 发布