Pagini recente » Cod sursa (job #291335) | Cod sursa (job #472029) | Cod sursa (job #1663871) | Cod sursa (job #155856) | Cod sursa (job #1649588)
#include <iostream>
#include<fstream>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int v[100001],d[100001],n,i,j,mx,pmax,a[100001];
int main()
{
f>>n;
for(i=1;i<=n;i++) f>>v[i];
for(i=1;i<=n;i++) d[i]=1;
for(i=2;i<=n;i++)
for(j=1;j<i;j++)
{
if(v[j]<v[i])
{
d[i]=max(d[i],d[j]+1);
if(d[i]>mx) {pmax=i;mx=d[i];}
}
}
g<<mx<<endl;
a[mx]=v[pmax];
int mx1=mx;
int p=pmax;
while(d[p]!=1)
{
for(i=p-1;i>=1;i--)
if(d[i]==d[p]-1 && v[i]<v[p])
break;
p=i;
mx1--;
a[mx1]=v[i];
}
for(j=1;j<=mx;j++) g<<a[j]<<' ';
}