Pagini recente » Cod sursa (job #2266568) | Profil MaleticiMiroslav | Cod sursa (job #286789) | Cod sursa (job #1474941) | Cod sursa (job #1660164)
#include <bits/stdc++.h>
using namespace std;
int main()
{
freopen("scmax.in" ,"r", stdin);
freopen("scmax.out", "w", stdout);
int N;
scanf("%d", &N);
vector <int> A(N);
for(int i = 0; i < N; ++i)
scanf("%d", &A[i]);
vector < int> low(1, A[0]);
for(int i = 1; i < N; ++i)
{
auto it = lower_bound(begin(low), end(low), A[i]);
if(it == end(low)) low.emplace_back(A[i]);
else
low[it - begin(low)] = A[i];
}
printf("%d\n", low.size());
for(auto e : low)
printf("%d ", e);
return 0;
}