C/C++

Задача 5. Остров на С++

 #include  
#include
#include
using namespace std;
struct point
{
int x, y;
};
point find_start_pos(const vector& vec)
{
for (int i = 0; i < vec.size(); i++)
for (int j = 0; j < vec[i].size(); j++)
if (vec[i][j] == '#') return { i,j - 1 };
}
bool check(point pos, const vector& vec)
{
if (vec[pos.x][pos.y] != '.') return false;
int dir[16] = { -1,0,0,1,1,0,0,-1,1,1,-1,1,1,-1,-1,-1 };
for (int i = 0; i < 8; i++)
{
int dirx = pos.x + dir[i * 2], diry = pos.y + dir[i * 2 + 1];
if (dirx >= 0 && dirx < vec.size() && diry >= 0 && diry < vec[dirx].size() && vec[dirx][diry] == '#') return true;
}
return false;
}
void path_creator(point pos, vector& vec)
{
int dir[8] = { -1,0,0,1,1,0,0,-1 };
vec[pos.x][pos.y] = '+';
cout n >> m;
vector map(n, vector(m));
for (auto& i : map)for (auto& j : i) cin >> j;
auto start_point = find_start_pos(map);
path_creator(start_point, map);
}
ввод:
5 5
.....
..#..
.###.
..#..
.....
вывод:
2 2
1 2
1 3
1 4
2 4
2 5
3 5
4 5
4 4
5 4
5 3
5 2
4 2
4 1
3 1
2 1
Женя Кочергин
Женя Кочергин
51 416
Лучший ответ