Я вот вообще не андерстендаю как в 5 строчек это можно сделать :(, можете подсказать хоть алгоритм?
Не надо так усиленно стараться в меньше кода сделать, лучше сначала чуть подлиннее но понятнее для себя, а потом уже можно заняться сокращениями/оптимизациями)