#include<stdio.h>
#include<string.h>
char d[25][25],b[100][5];
int e[25][25];
int main()
{
int r,c,t,k=0;
scanf("%d%d",&r,&c);
getchar();
char a[100];
gets(a);
int len=strlen(a),i,j;
for(i=0;i<len;i++)
{
if(a[i]==' ')
t=0;
else t=a[i]-'A'+1;
for(j=4;j>=0;j--)
{
b[i][j]=t%2+'0';
t=t/2;
}
}
int x=0,y=0,count=0;
j=0;
i=0;
while(count<len*5)
{
while(y<c&&e[x][y]!=1&&count<len*5)
{
d[x][y++]=b[i][j++];
e[x][y-1]=1;
count++;
if(j==5)
{
i++;
j=0;
}
}
y--;
x++;
while(x<r&&e[x][y]!=1&&count<len*5)
{
d[x++][y]=b[i][j++];
e[x-1][y]=1;
count++;
if(j==5)
{
i++;
j=0;
}
}
x--;
y--;
while(y>=0&&e[x][y]!=1&&count<len*5)
{
d[x][y--]=b[i][j++];
b[x][y+1]=1;
count++;
if(j==5)
{
i++;
j=0;
}
}
y++;
x--;
while(x>=0&&e[x][y]!=1&&count<len*5)
{
d[x--][y]=b[i][j++];
b[x+1][y]=1;
count++;
if(j==5)
{
i++;
j=0;
}
}
x++;
y++;
}
for(i=0;i<r;i++)
for(j=0;j<c;j++)
{
if(d[i][j]==NULL)
printf("0");
else printf("%c",d[i][j]);
}
return 0;
}
肯定是算法有问题,比如数组越界什么的