Pagini recente » Cod sursa (job #2032032) | Cod sursa (job #971914) | Cod sursa (job #668835) | Cod sursa (job #2640149) | Cod sursa (job #2631845)
#include <fstream>
#include <bits/stdc++.h>
using namespace std;
ifstream cin("scmax.in");
ofstream cout("scmax.out");
int n, i, x, sclm[100001], v[2], fr[100001];
int main()
{
int n;
cin >> n;
cin >> v[1];
int k = 1;
sclm[k] = v[1];
for(int i = 2; i <= n; i ++)
{
cin >> x;
if(fr[x] != 0)
continue;
else if(x > sclm[k] && fr[x] == 0)
{
sclm[++ k] = x;
fr[x] ++;
}
else if(x < sclm[k] && fr[x] == 0){
int upper = upper_bound(sclm + 1, sclm + k + 1, x) - sclm;
sclm[upper] = x;
fr[x] ++;
}
}
cout << k << "\n";
for(int i = 1; i <= k; i ++)
cout << sclm[i] << " ";
return 0;
}