def main():
n = int(input())
input1 = list(input().split())
output = []
input1.reverse()
for i in input1:
if i not in output:
output.append(i)
print(len(output))
output.reverse()
for i in output:
print(i, end = ' ')
main()
Аналогичный код на C++
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
bool checkel(vector<int> mas,int el)
{
for (int i:mas)
if (i == el)
return true;
return false;
}
int main()
{
int n;
cin >> n;
int* mas = new int[n];
for (int i=0;i<n ;i++ ) {
cin >> mas[i];
}
vector<int> vec;
for (int i=n-1;i>=0 ;i--) {
if (!checkel(vec,mas[i])) {
vec.push_back(mas[i]);
}
}
cout << vec.size() << endl;
reverse( vec.begin(), vec.end() );
for (int i:vec)
cout << i << ' ';
return 0;
}
Они показывали соизмеримо плохие результаты на скорость. От пайтона я ожидал, но от крестов...
Или может это из-за задержки вывода (в крестах)? Как его можно оптимизировать?