题目描述比题目本身难啊。。。
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
#define MAXDEPTH 8
#define MAXN 1024
int main(int argc, char const *argv[])
{
#ifndef ONLINE_JUDGE
freopen("test.in", "r", stdin);
#endif
char leaf_val[MAXN],tmp[MAXDEPTH];
int depth, n, order[MAXDEPTH], rst, cas(1), max_v;
while( scanf("%d", &depth) && depth ) {
printf("S-Tree #%d:\n", cas ++);
max_v = 0; rst = 1;
for(int i = 0; i < depth; i ++) {
max_v += (rst *= 2);
scanf("%s", tmp); sscanf(tmp, "x%d", &order[i]);
}
scanf("%s %d", leaf_val, &n); max_v -= rst;
for(int i = 0; i < n; i ++) {
scanf("%s", tmp); rst = 1;
for(int k = 0; k < depth; k ++) {
rst = ( '0' == tmp[ order[k]-1 ] )? rst<<1 : (rst<<1)+1;
}
printf("%c", leaf_val[ rst-max_v-2 ]);
}
printf("\n\n");
}
return 0;
}
uva_712_S-Trees
最新推荐文章于 2024-02-24 23:55:23 发布