Задача понятна. Нужно проверить, есть ли в квадратном поле хотя бы две соседние по горизонтали или вертикали клетки, содержащие росток 🌱. Если такие пары есть — вывести "нужно", иначе "не нужно". Диагональные соседи не учитываются.
Пошаговый план решения
- Считать N и затем N строк поля. Каждая строка имеет N символов: 🌱 или 🟫.
- Пройти по всем клеткам поля:
- Если текущая клетка содержит 🌱, проверить правого соседа (если есть) и нижнего соседа (если есть).
- Если любой сосед тоже 🌱, вывести "нужно" и завершить программу.
- Если пары не найдены после полного обхода, вывести "не нужно".
Время работы: O(N^2) — проверяем каждую клетку и максимум два соседа. Память: O(N^2) для хранения поля (если хранить всё поле).
Пример проверки на примерах
- Пример 1: 2 🟫🌱 🟫🌱 Есть вертикальные соседние 🌱 в столбце 2 -> ответ "нужно".
- Пример 2: 2 🌱🟫 🟫🌱 Единственные 🌱 — по диагонали, соседей по горизонтали/вертикали нет -> ответ "не нужно".
Пример кода на Python 3 (UTF-8)
- Код читает вход, обходит клетки и ищет соседей по горизонтали и вертикали.
def main():
import sys
data = sys.stdin.read().splitlines()
if not data:
print("не нужно")
return
N = int(data[0].strip())
grid = []
for i in range(1, 1 + N):
line = data[i].strip()
# удаляем возможные пробелы, если ввод содержит их между символами
line = line.replace(" ", "")
grid.append(line)
for i in range(N):
for j in range(N):
if grid[i][j] == '🌱':
# проверить правого соседа
if j + 1 < N and grid[i][j + 1] == '🌱':
print("нужно")
return
# проверить нижнего соседа
if i + 1 < N and grid[i + 1][j] == '🌱':
print("нужно")
return
print("не нужно")
if __name__ == "__main__":
main()
Пояснения по коду
- Сначала читаем N и далее N строк поля. Удаляем пробелы, чтобы корректно работать с символами-эмоджи.
- Обходим каждую клетку; если нашли 🌱, смотрим соседей справа и снизу (если такие соседи существуют).
- Как только найдём пару соседних 🌱, сразу выводим "нужно" и завершаем работу. Если обход окончен без таких пар, выводим "не нужно".
Если хочешь, могу привести альтернативный вариант на другом языке (например, C++ или Java) или адаптировать под конкретный формат входных данных.