Pagini recente » Cod sursa (job #604293) | Cod sursa (job #2633386) | Cod sursa (job #2864233) | Cod sursa (job #868517) | Cod sursa (job #2206083)
#include <bits/stdc++.h>
using namespace std;
int a[100010],b[100010],lmax,n;
int ValoareIntermidiara(int l, int r, int cheie)
{
while(r>l+1)
{
int m=(r+l)/2;
if(a[m]>=cheie)
r=m;
else l=m;
}
return r;
}
int main()
{
ifstream cin("scmax.in");
ofstream cout("scmax.out");
cin>>n;
for(int i=0;i<n;i++)cin>>a[i];
b[0]=a[0];
for(int i=1;i<n;i++)
{
if(a[i]<b[0]) b[0]=a[i];
else
if(a[i]>b[lmax])b[++lmax]=a[i];
else
b[ValoareIntermidiara(-1,lmax,a[i])]=a[i];
}
cout<<lmax+1;
}