?? pku1888.cpp
字號:
#include <stdio.h>
#include <string.h>
#define size 11
char Map[size][size];
int ID[size][size];
int M, N;
void input()
{
int i;
for (i = 0; i < M; i++)
{
scanf("%s", Map[i]);
}
}
void init()
{
int i, j, k;
memset(ID, 0, sizeof(ID));
k = 1;
for (i = 0; i < M; i++)
{
for (j = 0; j < N; j++)
{
if (Map[i][j] != '*' && (i - 1 < 0 || j - 1 < 0 || Map[i - 1][j] == '*' || Map[i][j - 1] == '*'))
{
ID[i][j] = k++;
}
}
}
}
void Solve()
{
int i, j, k;
printf("Across\n");
for (i = 0; i < M; i++)
{
for (j = 0; j < N; j++)
{
if (ID[i][j] && (j - 1 < 0 || Map[i][j - 1] == '*'))
{
printf("%3d.", ID[i][j]);
for (k = j; k < N && Map[i][k] != '*'; k++)
{
printf("%c", Map[i][k]);
}
printf("\n");
}
}
}
printf("Down\n");
for (i = 0; i < M; i++)
{
for (j = 0; j < N; j++)
{
if (ID[i][j] && (i - 1 < 0 || Map[i - 1][j] == '*'))
{
printf("%3d.", ID[i][j]);
for (k = i; k < M && Map[k][j] != '*'; k++)
{
printf("%c", Map[k][j]);
}
printf("\n");
}
}
}
printf("\n");
}
int main()
{
int kase = 1;
while (1 == scanf("%d", &M) && M)
{
scanf("%d", &N);
input();
init();
printf("puzzle #%d:\n", kase++);
Solve();
}
return 0;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -