Pagini recente » Cod sursa (job #266955) | Cod sursa (job #3129200) | Cod sursa (job #3162187) | Cod sursa (job #398612) | Cod sursa (job #2647859)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
vector<int> seq;
int valueSearch(int l, int r, int x)
{
int pos = -1;
while(l <= r)
{
int m = (l+r)/2;
if(seq[m] < x)
l = m+1;
else
pos = m, r = m-1;
}
return pos;
}
int main()
{
int n, x, seqSize = 0;
fin>>n;
for(int i = 0; i < n; i++)
{
seq.push_back(INT_MAX);
fin>>x;
int pos = valueSearch(0, i, x);
seq[pos] = x;
seqSize = max(seqSize, pos);
}
fout<<++seqSize<<'\n';
for(int i = 0; i < seqSize; i++)
fout<<seq[i]<<" ";
return 0;
}