Pagini recente » Cod sursa (job #1604019) | Cod sursa (job #2715423) | Cod sursa (job #2328813) | Cod sursa (job #227786) | Cod sursa (job #2631850)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int n, i, x, v[2];
long long sclm[100001], fr[100001];
int main()
{
int n;
fin >> n;
fin >> v[1];
int k = 1;
sclm[k] = v[1];
fr[v[1]] ++;
for(int i = 2; i <= n; i ++)
{
fin >> 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] ++;
}
}
fout << k << "\n";
for(int i = 1; i <= k; i ++)
fout << sclm[i] << " ";
return 0;
}