#include <stdio.h>
#include <string.h>
char dict[8][1 << 8];
int readCode() {
char ch;
int getedCh = 0;
memset(dict,0 , sizeof(dict));
for ( int i = 1 ; i < 8; ++i) {
for (int j = 0 ; j < (1 << i) - 1; ++j) {
ch = getchar();
while(!getedCh && ch == '\n' || ch == '\r'){
ch = getchar();
}
getedCh = 1;
if(ch == '\n' || ch == '\r') {return 1;}
if(ch == EOF)return 0;
// printf("i %d j %d\n", i, j);
dict[i][j] = ch;
}
}
}
int binToDec(int len) {
int dec = 0;
while(len--) {
char ch = getchar();
while(ch =='\n'|| ch == '\r'){
ch = getchar();
}
dec += ((ch - '0') << len);
}
return dec;
}
int main() {
// freopen("data.in", "r", stdin);
while(readCode()) {
while(int len = binToDec(3)) {
while(1) {
int index = binToDec(len);
if(index == (1 << len) - 1) break;
putchar(dict[len][index]);
}
}
putchar('\n');
}
return 0;
}
“000”不一定在字符串的最后,可能在字符串的中间结束,不用加换行就直接进入下一组测试数据。所以在redecode中需要getedCh