#include <iostream>
#include <algorithm>
#include <string>
#include <iomanip>
#include <vector>
using namespace std;
int main()
{
int col, row;
int puznum = 0;
while (cin >> row && row != 0)
{
int num = 0;
cin >> col;
if (puznum != 0)
cout << endl;
cout << "puzzle #" << ++puznum << ":" << endl;
vector<string> solution;
int** a;//存储各方格数值,0代表为非eligible square的白方块,-1表示黑方块
a = new int* [row];
for (int i = 0; i < row; ++i)
{
a[i] = new int[col] {0};
}
string s;
for (int i = 0; i < row; ++i)
{
cin >> s;
solution.push_back(s);
}
for (int i = 0; i < row; ++i)
{
for (int j = 0; j < col; ++j)
{
if ((i == 0 || j == 0 || solution[i - 1][j] == '*' || solution[i][j - 1] == '*') && solution[i][j] != '*')
{
a[i][j] = ++num;
}
else if (solution[i][j] == '*')
{
a[i][j] = -1;
}
else
{
a[i][j] = 0;
}
}
}
cout << "Across\n";
for (int i = 0; i < row; ++i)
{
for (int j = 0; j < col; ++j)
{
if (a[i][j] > 0)
{
cout << setw(3) << a[i][j] << '.';
while (j < col && solution[i][j] != '*')
{
cout << solution[i][j++];
}
cout << endl;
}
}
}
cout << "Down\n";
for (int i = 0; i < row; ++i)
{
for (int j = 0; j < col; ++j)
{
if (a[i][j] > 0 && (i == 0 || a[i - 1][j] == -1))
{
cout << setw(3) << a[i][j] << '.';
int temp = i;
while (temp < row && solution[temp][j] != '*')
{
cout << solution[temp++][j];
}
cout << endl;
}
}
}
//释放动态数组指向的内存
for (int i = 0; i < row; ++i)
{
delete[] a[i];
}
delete[] a;
}
}
本文地址:https://blog.csdn.net/weixin_46273288/article/details/107617484
如对本文有疑问, 点击进行留言回复!!
iOS14Beta3续航怎么样 iOS14Beta3续航能力介绍
iOS14Beta3稳定性怎么样 iOS14Beta3升级建议介绍
uniapp编写H5界面放入IOS全面屏原生导航栏盖住H5界面
游戏APP解决方案,8月1日起下架无版号ios手游的出路在哪?
网友评论