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