Suppression des doublons d’un tableau trié avec une limite sur le nombre de répétitions

C++ Medium arrays

Tâche «Suppression des doublons d’un tableau trié avec une limite sur le nombre de répétitions»

Étant donné un tableau d’entiers trié par ordre non décroissant. Il faut supprimer les doublons de sorte que chaque élément apparaisse au plus deux fois, et retourner la longueur du nouveau tableau. Les éléments du tableau après cette longueur n’ont pas d’importance. La solution doit être réalisée sans utiliser de mémoire supplémentaire (in-place).

Format d\ entrée

La première ligne contient un entier N (1 ≤ N ≤ 10^5) — le nombre d’éléments dans le tableau. La deuxième ligne contient N entiers séparés par des espaces — les éléments du tableau, triés par ordre non décroissant.

Format de sortie

Un seul entier — la longueur du tableau après suppression des doublons (le nombre d’éléments qui apparaissent au plus deux fois).

Exemples

Exemple 1

ENTRÉE
1 5
SORTIE
1

Exemple 2

ENTRÉE
5 1 2 3 4 5 7
SORTIE
5

Exemple 3

ENTRÉE
6 1 1 1 2 2 3
SORTIE
5
main.cpp