You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
1.7 KiB
62 lines
1.7 KiB
#include <bits/stdc++.h>
|
|
|
|
using namespace std;
|
|
|
|
int main() {
|
|
char grid[15][15];
|
|
int a, b, i, j, k, t = 0, n[15][15];
|
|
while (scanf("%d", &a) && a != 0) {
|
|
scanf("%d", &b);
|
|
getchar();
|
|
for (i = 0; i < a; i++)
|
|
gets(grid[i]);
|
|
k = 0;
|
|
memset(n, 0, sizeof(n));
|
|
for (i = 0; i < a; i++)
|
|
for (j = 0; j < b; j++) {
|
|
if (i == 0 && grid[i][j] != '*')
|
|
n[i][j] = ++k;
|
|
else if (j == 0 && grid[i][j] != '*')
|
|
n[i][j] = ++k;
|
|
else if (grid[i][j - 1] == '*' && grid[i][j] != '*')
|
|
n[i][j] = ++k;
|
|
else if (grid[i - 1][j] == '*' && grid[i][j] != '*')
|
|
n[i][j] = ++k;
|
|
}
|
|
if (t) putchar('\n');
|
|
printf("puzzle #%d:\nAcross\n", ++t);
|
|
for (i = 0; i < a; i++)
|
|
for (j = 0; j < b; j++) {
|
|
if (n[i][j] && (j == 0 || grid[i][j - 1] == '*')) {
|
|
printf("%3d.", n[i][j]);
|
|
for (k = j; k < b && grid[i][k] != '*'; k++)
|
|
putchar(grid[i][k]);
|
|
putchar('\n');
|
|
}
|
|
}
|
|
printf("Down\n");
|
|
for (i = 0; i < a; i++)
|
|
for (j = 0; j < b; j++) {
|
|
if (n[i][j] && (i == 0 || grid[i - 1][j] == '*')) {
|
|
printf("%3d.", n[i][j]);
|
|
for (k = i; k < a && grid[k][j] != '*'; k++)
|
|
putchar(grid[k][j]);
|
|
putchar('\n');
|
|
}
|
|
}
|
|
}
|
|
return 0;
|
|
}
|
|
/*
|
|
2 2
|
|
AT
|
|
*O
|
|
6 7
|
|
AIM*DEN
|
|
*ME*ONE
|
|
UPON*TO
|
|
SO*ERIN
|
|
*SA*OR*
|
|
IES*DEA
|
|
1 1
|
|
**/ |