Pagini recente » Rating Bivol Mihai (bivol_mihai) | Profil kzeleznik | Profil vladcociorva | Cod sursa (job #1291249) | Cod sursa (job #2072968)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int k,dp[100002],n,a[100002];
int Caut_bin(int x)
{
int st,dr,mij,p;
st=1;
dr=k;
p=0;
while(st<=dr)
{
mij=(st+dr)/2;
if(dp[mij]>=x)
{
p=mij;
dr=mij-1;
}
else st=mij+1;
}
return p;
}
int main()
{
int i;
fin>>n;
for(i=1;i<=n;i++)
fin>>a[i];
k=1;
dp[k]=a[1];
for(i=2;i<=n;i++)
{
if(a[i]>dp[k])dp[++k]=a[i];
else if(a[i]<dp[1])
{
k=1;
dp[k]=a[i];
}
else
{
k=Caut_bin(a[i]);
dp[k]=a[i];
}
}
fout<<k<<"\n";
for(i=1;i<=k;i++)
fout<<dp[i]<<" ";
return 0;
}