Pagini recente » Cod sursa (job #1803754) | Cod sursa (job #1769057) | Cod sursa (job #1864442) | Cod sursa (job #3172820) | Cod sursa (job #2130063)
#include <fstream>
using namespace std;
int n,i,j,lmax,Max,poz,l[100002],m[100002],a[100002];
ifstream f("scmax.in");
ofstream g("scmax.out");
void recursivitate(int lmax,int poz)
{
if(lmax==0)return ;
else if(l[poz]==lmax)
{
m[++Max]=a[poz];
recursivitate(lmax-1,poz-1);
}
else
{
recursivitate(lmax,poz-1);
}
}
void recursivitate1()
{
int i;
for(i=Max;i>=1;i--)
{
g<<m[i]<<" ";
}
}
int main()
{
f>>n>>a[1];
l[1]=1;
poz=1;
lmax=1;
for(i=2;i<=n;i++)
{
f>>a[i];
Max=0;
for(j=1;j<=i-1 && Max!=lmax;j++)
{
if(a[i]>a[j] && Max<l[j])Max=l[j];
}
l[i]=Max+1;
if(l[i]>lmax)
{
lmax=l[i];
poz=i;
}
}
g<<lmax<<'\n';
Max=0;
m[++Max]=a[poz];
recursivitate(lmax-1,poz-1);
recursivitate1();
return 0;
}