Имеется решение на языке Python, но оно использует слишком много памяти.
Наследники
Король Т-Царства Олег в 2024 году празднует свое шестидесятилетие. В связи с этим его заинтересовал вопрос наследства. На данный момент Т-Царство представляет из себя прямоугольник w*h, разделенный на графства параллельно своим сторонам. По вертикали разрезы проходят в координатах x1,x2,x3, по горизонтали в y1, y2, y3....
В первой строке вводятся два числа размеры Т-Царства.
Во второй строке вводятся два числа количество вертикальных и горизонтальных делений на графства.
В третьей строке вводится одно число количество сыновей.
В четвертой строке вводятся чисел координаты делений на графства по вертикали.
В пятой строке вводятся чисел координаты делений на графства по горизонтали.
Количество "графств" не должно быть меньше количества сыновей. С оставшимися-то что делать? Надо упорядочить "графства" по убыванию значения площади и отобрать по количеству сыновей. То есть ответом будет разница нулевого и последнего. До этого вычислить эти площади по координатам и составить список (как-нибудь "графства" идентифицировав, например, перенумеровав). Для сокращения занятой памяти надо упорядочить список длин (отрезков) на каждой стороне по убыванию и, составляя список площадей, сразу создавать его убывающим и равным по длине количеству сыновей.
А задача-то где? Ты дал только описание исходных данных. Без описания того, что с этими данными нужно делать и что должно получиться в результате.
N.B. Спасибо, добавил, что должно получиться. Но где описание правил, по которым графства распределяются между сыновьями? Может быть, старший сын получит вообще всё и младшему ничего не достанется?
В заведомо не укладывающемся в лимиты Python-коде бессмысленно разбираться: раз "слишком много памяти", значит надо не "переписать на C++" (опять будет "слишком много памяти", а найти другой способ решения.