Magia vectorial: eliminación de duplicados conservando el orden

C++ Hard vectors

Tarea «Magia vectorial: eliminación de duplicados conservando el orden»

Dado un vector de números enteros. Es necesario eliminar todos los duplicados, dejando solo la primera aparición de cada elemento, manteniendo el orden de los elementos. Implemente una función que reciba un vector y devuelva un nuevo vector sin duplicados. Está prohibido usar std::set o std::unordered_set. Datos de entrada: primero un número entero N (1 ≤ N ≤ 10^5) — la cantidad de elementos, luego N números enteros, cada uno en valor absoluto no mayor que 10^9. Imprima el vector resultante separado por espacios.

Formato de entrada

Primera línea: un número entero N (1 ≤ N ≤ 10^5). Segunda línea: N números enteros separados por espacios.

Formato de salida

Una línea: los elementos del vector resultante separados por espacios.

Ejemplos

Ejemplo 1

ENTRADA
5 1 2 3 2 1
SALIDA
1 2 3

Ejemplo 2

ENTRADA
6 4 5 6 5 4 3
SALIDA
4 5 6 3

Ejemplo 3

ENTRADA
5 1 2 3 4 5
SALIDA
1 2 3 4 5

Ejemplo 4

ENTRADA
4 7 7 7 7
SALIDA
7

Ejemplo 5

ENTRADA
8 2 5 2 8 5 6 8 8
SALIDA
2 5 8 6
main.cpp