как удалить дубликаты из массива?

Всем привет! Помогите, пожалуйста, решить задачу на алгоритмы. Задача из яндекса, вот условие:введите сюда описание изображения

вот мой код:

#include <iostream>
#include <vector>

int main(){

    int n;
    std::cin >> n;
    std::vector<int> v(n);
    for(int i = 0; i < n; ++i)
    {
        std::cin >> v[i];
    }
    
    int m = 0, k = 1;
    while(k < n)
    {
        if(v[k] != v[m])
        {
            v[m+1] = v[k];
            ++m;
        }
        ++k;
    }
    ++m;
    


    for(int i = 0; i < m; ++i)
    {
        std::cout << v[i];
    }
    
    return 0;
}

Но при первом же тесте проваливается. Подскажите, что здесь не так


Ответы (2 шт):

Автор решения: Ahmed_08
#include <iostream>
#include <vector>

int main(){

    int n;
    std::cin >> n;
    std::vector<int> v(n);
    int len = 0;
    for(int i = 0; i < n; ++i)
    {
        int el;
        std::cin >> el;
    
        if(i == 0)
        {
            v[len++] = el;
        
        }else{

            if(v[len-1] != el)
            {
                v[len++] = el;
            }
        }
        
    }



    for(int i = 0; i < len; ++i)
    {
        std::cout << v[i] << ' ';
    }
    
    return 0;
}
→ Ссылка
Автор решения: Qwertiy
unsigned n;
int x;

cin >> n >> x;
cout << x;

for (int y; --n; )
  if (cin >> y, x != y)
    cout << ' ' << (x=y);

cout << endl;
→ Ссылка