Ограничения: время – 1s/2s, память – 64MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод 
Послать решение Blockly Посылки Темы Где Обсудить (0)
Город 4е сильно вырос и было решено разделить его на 4 района. Город имеет форму квадрата размером
N кварталов. Каждый квартал либо застроен зданием, либо является пустым.
Для разделения на районы нужно провести две прямые линии между кварталами – по вертикали и
горизонтали – таким образом, чтобы количества зданий в каждом районе не слишком сильно отличались.
Напишите программу, которая по плану города вычислит способ разделения города на 4 района,
минимизирующий значение выражения
∑(K_i-K/4)^2, где K – количество зданий в городе, K_i – количество зданий в i-м районе.
Если существует несколько вариантов с минимальным значением, то вывести из них тот вариант, в котором минимально значение
выражения ∑(S_i-S/4)^2, где S\ =\ N^2 – общая площадь города, S_i – площадь i-го района. При одинаковых
значениях обоих выражений выбрать минимальное значение для положения горизонтальной границы, затем – вертикальной.
Во входном файле несколько тестовых случаев. Каждый тест начинается со строки, содержащей одно целое число N (2\ ≤\ N\ ≤\ 500) –
размер города. Далее следует N строк, содержащих по N символов – план города. Символ '#' означает квартал
со зданием, символ '.' – пустырь. Набор тестов заканчивается строкой, содержащей число 0.
Для каждого тестового случая вывести строку, содержащую два целых числа, разделенных пробелом – положение вертикальной, затем
горизонтальной линий разделения города на районы. Верхний левый угол имеет координаты (0,0), правый нижний – (N,N).
Пример ввода
4
####
#...
.#..
..#.
3
#.#
.#.
#.#
0