Pagini recente » Cod sursa (job #1538983) | Cod sursa (job #2460627) | Cod sursa (job #170594) | Cod sursa (job #3134280) | Cod sursa (job #2721808)
#include <bits/stdc++.h>
using namespace std;
const int NMAX=1e5+5;
int v[NMAX],poz[NMAX];
int main()
{
freopen("scmax.in","r",stdin);
freopen("scmax.out","w",stdout);
int n,i;
scanf("%d",&n);
vector<int>s;
for(i = 1; i <= n ; ++i)
{
scanf("%d",&v[i]);
if(s.empty())
{
s.push_back(v[i]);
poz[i]=1;
continue;
}
vector<int>::iterator it;
if(s[s.size()-1] < v[i])
{
s.push_back(v[i]);
poz[i]=s.size();
continue;
}
it = lower_bound(s.begin(),s.end(),v[i]);
s[it-s.begin()]=v[i];
poz[i]=it-s.begin()+1;
}
int cmax =0;
for(i = 1 ; i <= n ; ++i)
cmax=max(cmax,poz[i]);
cout<<cmax;
return 0;
}