Pagini recente » Cod sursa (job #140611) | Cod sursa (job #456269) | Cod sursa (job #3276436) | Cod sursa (job #163994) | Cod sursa (job #2909109)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#include <set>
#include <iterator>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
void readData(int &N, vector<int> &numbers)
{
fin >> N;
auto aux = 0;
for(auto i = 0; i < N; i++)
{
fin >> aux;
numbers.push_back(aux);
}
}
set<int> findLen(vector<int> &numbers)
{
set<int> s;
for(auto number = numbers.cbegin(); number < numbers.cend(); number++)
{
if(s.find(*number) != s.end())
continue;
auto currentElem = s.insert(*number);
set<int>::iterator it;
if(currentElem.second)
it = currentElem.first;
if(++it != s.end())
s.erase(it);
}
return s;
}
int main()
{
int N = 0;
vector<int> numbers;
readData(N, numbers);
set<int> SET = findLen(numbers);
fout << SET.size() << endl;
for(auto itr : SET)
fout << itr << " ";
fin.close();
fout.close();
return 0;
}