Pagini recente » Cod sursa (job #2153946) | Cod sursa (job #2715240) | Cod sursa (job #1844120) | Cod sursa (job #2729226) | Cod sursa (job #1166827)
//Subsir crescator maximal-progamare dinamica-70pct O(n*n)
#include<fstream>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int n,i,v[100002],q[100002],aux,p[100002],lung,j;
int main()
{
fin>>n;
fin>>v[1];
q[1]=v[1];
p[1]=1;
lung=1;
for(i=2;i<=n;++i)
{
fin>>v[i];
for(j=lung;j;--j)
if(q[j]>=v[i]&&q[j-1]<v[i])
{
q[j]=v[i];
p[i]=j;
break;
}
if(p[i]==0)
{
p[i]=lung+1;
q[++lung]=v[i];
}
}
fout<<lung<<'\n';
aux=lung;
for(i=n;aux;--i)
{
if(p[i]==aux)
{
q[aux]=v[i];
aux--;
}
}
for(i=1;i<=lung;++i)
fout<<q[i]<<" ";
return 0;
}