📄 1142.cpp
字号:
/* This Code is Submitted by wywcgs for Problem 1142 on 2005-10-01 at 09:58:13 */
#include <stdio.h>
int main()
{
int n, m, fact[13];
int l[4096], p, begin, end;
int i, j, t = 1;
char s[4096];
fact[0] = 1;
for(i = 1; i < 13; i++) {
fact[i] = fact[i-1] * 2;
}
while(scanf("%d", &n) == 1) {
if(n == 0) {
return 0;
} else {
while(getchar() != '\n')
;
gets(s);
for(i = 0; i < fact[n]; i++) {
scanf("%1d", &l[i]);
}
scanf("%d", &m);
printf("S-Tree #%d:\n", t);
t++;
for(i = 0; i < m; i++) {
begin = 1;
end = fact[n];
for(j = 0; j < n; j++) {
scanf("%1d", &p);
if(p == 1) {
begin = (begin + end + 1) / 2;
} else {
end = (begin + end - 1) / 2;
}
}
printf("%d", l[begin-1]);
}
printf("\n\n");
}
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -