Векторная магия: удаление дубликатов с сохранением порядка

C++ Сложный vectors

Задача «Векторная магия: удаление дубликатов с сохранением порядка»

Дан вектор целых чисел. Необходимо удалить из него все дубликаты, оставив только первое вхождение каждого элемента, при этом порядок следования элементов должен сохраниться. Реализуйте функцию, которая принимает вектор и возвращает новый вектор без дубликатов. Использовать std::set или std::unordered_set запрещено. Входные данные: сначала целое число N (1 ≤ N ≤ 10^5) — количество элементов, затем N целых чисел, каждое по модулю не превышает 10^9. Выведите полученный вектор через пробел.

Формат ввода

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

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

Одна строка: элементы результирующего вектора, разделённые пробелами.

Примеры

Пример 1

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

Пример 2

ВВОД
6 4 5 6 5 4 3
ВЫВОД
4 5 6 3

Пример 3

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

Пример 4

ВВОД
4 7 7 7 7
ВЫВОД
7

Пример 5

ВВОД
8 2 5 2 8 5 6 8 8
ВЫВОД
2 5 8 6
main.cpp