#include <bits/stdc++.h>
using namespace std;
const int N = 101;
char mp[N][N];
int n,m;
int vis[N][N];
bool fl[N][N];
void search(){
int num=1;
for(int i=0;i<n;i++)
for(int j=0;j<m;j++){
if(mp[i][j]!='*'){
if(i==0||j==0||mp[i-1][j]=='*'||mp[i][j-1]=='*') vis[i][j]=num++;
}
}
}
void print_A(){
printf("Across\n");
for(int i=0;i<n;i++){
for(int j=0;j<m;j++)
{
if(vis[i][j]){
printf("%d.",vis[i][j]);
int k;
for(k=j;k<m;k++){
if(mp[i][k]!='*') printf("%c",mp[i][k]);
else
break;
}
j=k;
puts("");
}
}
}
}
void print_D(){
printf("Down\n");
while(1){
int flag=0;
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
{
if(vis[i][j]!=0) flag=1;
}
if(flag==0) break;
for(int j=0;j<m;j++)
{
for(int i=0;i<n;i++)
{
if(vis[i][j]){
printf("%d.",vis[i][j]);
int k;
for(k=i;k<n;k++){
if(mp[k][j]!='*') {
printf("%c",mp[k][j]);
vis[k][j]=0;
}
else
break;
}
puts("");
break;
}
}
}
}
}
int main(){
int num=1;
while(scanf("%d", &n) != EOF){
if(n==0) break;
scanf("%d",&m);
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
cin>>mp[i][j];
printf("puzzle #%d:\n",num++);
search();
print_A();
print_D();
}
return 0;
}
07-13
07-13
07-13
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交