Pagini recente » Cod sursa (job #1044272) | Cod sursa (job #807456) | Monitorul de evaluare | Monitorul de evaluare | Cod sursa (job #3314485)
//#pragma GCC optimize("O3, Ofast, unroll-loops")
#include <bits/stdc++.h>
using namespace std;
int v[300005], dp[300005], v2[300005], v3[300005];
int main()
{
ifstream cin("scmax.in");
ofstream cout("scmax.out");
int n, rez=1, poz=1, cnt=1;
cin>>n;
for(int i=1; i<=n; i++)
{
cin>>v[i];
v2[i]=i;
}
dp[1]=1;
for(int i=2; i<=n; i++)
{
int ok=0;
for(int j=1; j<=cnt; j++)
{
if(v[i]<=v[dp[j]])
{
dp[j]=i;
v2[i]=dp[j-1];
ok=1;
break;
}
}
if(ok==0)
{
dp[++cnt]=i;
v2[i]=dp[cnt-1];
}
}
cout<<cnt<<'\n';
/*poz=dp[cnt];
v3[rez++]=v[dp[cnt]];
while(poz>0 && v2[poz]!=0)
{
v3[rez++]=v[v2[poz]];
poz=v2[poz];
}
for(int i=rez-1; i>0; i--)
cout<<v3[i]<<" ";*/
return 0;
}