Pagini recente » Cod sursa (job #1063691) | Cod sursa (job #920566) | Monitorul de evaluare | Cod sursa (job #1444208) | Cod sursa (job #2008467)
#include <fstream>
#define dim 100001
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int Prec[dim],x,M[dim],A[dim];
int st=1,dr,k=0,mij,poz;
void Afis(int b)
{
if(b!=0)
{
Afis(Prec[b]);
g<<A[b]<<" ";
}
}
int main()
{
int i,j,N;
f>>N;
for(i=1;i<=N;++i)
{
/*********************/
f>>A[i];
st=1;
dr=k;
while(st<=dr)
{
mij=(st+dr)/2;
if(A[i]>A[M[mij]])
st=mij+1;
else
dr=mij-1;
}
M[st]=i;
Prec[i]=M[st-1];
if(st>k)
{
k=st;
poz=i;
}
/*********************/
}
g<<k<<'\n';
Afis(poz);
g<<'\n';
return 0;
}