Pagini recente » Cod sursa (job #1549225) | Cod sursa (job #453741) | Cod sursa (job #3195585) | Cod sursa (job #2849180) | Cod sursa (job #2635438)
#include<fstream>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
long long v[100004],t[100004],r[100004];
long long n,i,len,st,dr,mij,elem;
int main()
{
fin>>n;
for(i=1;i<=n;i++) fin>>v[i];
len=1;
t[1]=1;
for(i=2;i<=n;i++)
{
if(v[i]>v[t[len]])
{
len++;
t[len]=i;
r[i]=t[len-1];
}
else
{
st=1;
dr=len;
elem=0;
while(st<=dr)
{
mij=(st+dr)/2;
if(v[t[mij]]>v[i])
{
elem=mij;
dr=mij-1;
}
else st=mij+1;
}
t[mij]=i;
r[i]=t[mij-1];
}
}
fout<<len<<'\n';
return 0;
}