Предмет: Информатика, автор: dzasanbai

Вам дается массив из N целых чисел. Вам необходимо удалить повторяющиеся элементы так, чтобы от каждого элемента осталось только его самое правое вхождение. При этом относительный порядок оставшихся элементов должен остаться таким, как в изначальном массиве. Входные данные В первой строке вводится целое число N — количество элементов в массиве (1≤N≤50). Во второй строке вводится N целых чисел A1, A2, A3, ..., AN — элементы массива (1≤Ai≤1000). Выходные данные В первой строке выведите одно число — количество оставшихся элементов. Во второй строке выведите сами эти элементы, сохраняя относительный порядок как в оригинальном массиве.

Ответы

Автор ответа: kristinaYaromeeva
0

#include <iostream>

#include <vector>

using namespace std;

int main(){

   int n;

   cin >> n;

   vector<int> a(n), res;

   vector<bool> used(1001, false);

   for(int i = 0; i < n; i++) cin >> a[i];

   for(int i = n - 1; i >= 0; i--){

       if(!used[a[i]]){

           res.push_back(a[i]);

           used[a[i]] = true;

       }

   }

   reverse(res.begin(), res.end());

   cout << res.size() << "\n";

   for(int i = 0; i < res.size(); i++)

       cout << res[i] << " ";

}

Похожие вопросы
Предмет: Русский язык, автор: milka00007
Предмет: Русский язык, автор: Акося111
Предмет: Математика, автор: lilkz