Удаление дубликатов из отсортированного массива с ограничением на количество повторений

C++ Средний arrays

Задача «Удаление дубликатов из отсортированного массива с ограничением на количество повторений»

Дан отсортированный по неубыванию целочисленный массив. Необходимо удалить дубликаты таким образом, чтобы каждый элемент встречался не более двух раз, и вернуть длину нового массива. Остальные элементы массива после этой длины не важны. Решение должно быть выполнено без использования дополнительной памяти (in-place).

Формат ввода

Первая строка содержит целое число N (1 ≤ N ≤ 10^5) — количество элементов в массиве. Вторая строка содержит N целых чисел, разделённых пробелами — элементы массива, отсортированные по неубыванию.

Формат вывода

Одно целое число — длина массива после удаления дубликатов (количество элементов, которые встречаются не более двух раз).

Примеры

Пример 1

ВВОД
1 5
ВЫВОД
1

Пример 2

ВВОД
5 1 2 3 4 5 7
ВЫВОД
5

Пример 3

ВВОД
6 1 1 1 2 2 3
ВЫВОД
5
main.cpp