#include <cstdio>
#include <iostream>
#include <cstring>
using namespace std;
char codes[8][1<<8];
int readchar();
int readint(int c);
int readcodes();
int main()
{
while(readcodes())
{
while(1)
{
int len=readint(3);
if(len==0) break;
//cout<<len<<endl;
while(1)
{
int v=readint(len);
if(v==(1<<len)-1) break;
putchar(codes[len][v]);
}
}
putchar('\n');
}
return 0;
}
int readint(int c)
{
int v=0;
while(c--)
{
v=v*2+readchar()-'0';
}
return v;
}
int readchar()
{
for(;;)
{
int ch=getchar();
if(ch!='\n'&&ch!='\r') return ch;
}
}
int readcodes()
{
memset(codes,0,sizeof(codes));
codes[1][0]=readchar();
for(int i=2;i<=7;i++)
for(int j=0;j<(1<<i)-1;j++)
{
char ch=getchar();
if(ch==EOF) return 0;
if(ch=='\n'||ch=='\r') return 1;
codes[i][j]=ch;
}
return 1;
}
信息解码(Message Decoding, ACM/ICPC World Finals 1991, UVa 213)
猜你喜欢
转载自blog.csdn.net/qq_41667282/article/details/81194537
今日推荐
周排行