Если б всерьёз за задачу засел, тогда бы, наиболее вероятно, просто бы рассмотрел все частные случаи по методу исчерпывания вариантов. Для того же оптимального меширования вокселей при переходе на плоскость вместо очевидного поиска с удалением прямоугольников рассмотрел 16 вариантов и сжал до 9? (7?), чтобы последовательно перебирать элементы без перезаписи.