Task 64_1. Одинаковый периметр

Task 64_1. Одинаковый периметр

UniLecs

Задача: дана геометрическая фигура в виде квадратов (зеленого цвета), каждый зеленый квадрат имеет хотя бы одну общую точку хотя бы с одним другим зеленым квадратом. Исходная фигура является связной.

Исходная фигура задается массивом точек (-100 <= x,y <= 100) левых нижних углов зеленых квадратов.

Нужно дорисовать заданную фигуру максимальным кол-вом квадртов желтого цвета таким образом, чтобы периметр новой фигуры оставался таким же.

Входные данные: массив координат левых нижних углов зеленых квадратов.

Вывод: кол-во желтых квадратов.

Написать программу, ктр по заданным координатам исходных квадратов найдет максимальное кол-во желтых квадратов, ктр нужно дорисовать так, чтобы периметр новой фигуры не изменился.

Пример:

пример

[ { x: 1, y: 1}, { x: 2, y: 1 }, { x: 2, y: 2 }]

Вывод 1.

Реализация:

Правильное решение этой задачи нам прислал только один человек.

Антон сделал задачу на языке Rust, решение довольно обьемное, поэтому переходим сразу на gist файл или в play-test.

https://gist.github.com/AnthonyMikh/b5c3fb3480674ccfb431e9eb7f395ee4

Тест:

https://play.rust-lang.org/?gist=77d643969db1caddabd410ee4a0ed392&version=stable

Report Page