Вам дается массив из 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] << " ";
}
Новые вопросы
Русский язык,
2 года назад
Другие предметы,
2 года назад
Английский язык,
2 года назад
Английский язык,
2 года назад
Литература,
8 лет назад
Математика,
8 лет назад