https://www.acmicpc.net/problem/17135
17135번: 캐슬 디펜스
첫째 줄에 격자판 행의 수 N, 열의 수 M, 궁수의 공격 거리 제한 D가 주어진다. 둘째 줄부터 N개의 줄에는 격자판의 상태가 주어진다. 0은 빈 칸, 1은 적이 있는 칸이다.
www.acmicpc.net
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int N, M, D, result = 0, count = 0;
int map[15][15];
cin >> N >> M >> D;
vector<pair<int, int>> enemy;
for (int i = 0; i < N; i++)
{
for (int j = 0; j < M; j++)
{
cin >> map[i][j];
if (map[i][j] == 1)
{
enemy.push_back({ i, j });
}
}
}
while (true)
{
int y = N;
vector<int> target;
for (int i = 0; i < M-3; i++)
{
int dist = abs(y - enemy[0].first) + abs(i - enemy[0].second);
}
vector<pair<int, int>> temp;
for (int i = 0; i < enemy.size(); i++)
{
if (enemy[i].first < N - 1)
{
temp.push_back({ enemy[i].first + 1, enemy[i].second });
}
}
enemy = temp;
if (enemy.empty())
{
result = max(result, count);
break;
}
}
cout << result << "\n";
}