Сортировка версий с оператором <=>
Условие
Дан список версий вида 1.2.10: от одного до шести неотрицательных целых через точку. Версии сравниваются покомпонентно как числа (1.10 > 1.9), а недостающие компоненты считаются нулями, поэтому 1.2, 1.2.0 и 1.2.0.0 равны.
Отсортируйте версии по возрастанию и уберите равные, оставляя из каждой группы равных ту, что встретилась во входе раньше всех. Выведите количество различных версий и сами версии в исходной записи.
Реализуйте тип Version с auto operator<=>(const Version&) const (можно = default поверх нормализованного вектора компонент).
Ввод: n (1 ≤ n ≤ 3000), затем n версий. Компоненты от 0 до 10⁹, без ведущих нулей.
Вывод: число различных версий и по версии в строке.
Пример 1
Ввод:
5
1.10
1.9
1.2
1.2.0
0.9.9
Вывод:
4
0.9.9
1.2
1.9
1.10
Пример 2
Ввод:
3
0
0.0
0.0.0
Вывод:
1
0
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.