1142.cpp

来自「哈尔滨工业大学ACM 竞赛网上在线试题集锦的源代码」· C++ 代码 · 共 47 行

CPP
47
字号
/*  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 + =
减小字号Ctrl + -
显示快捷键?