Pagini recente » Cod sursa (job #2748155) | Cod sursa (job #3123186) | Cod sursa (job #830877) | Cod sursa (job #2804994) | Cod sursa (job #1650311)
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
ifstream f("triunghi5.in");
ofstream g("triunghi5.out");
int lis[100],nex[100];
int main()
{
int i,j,x[48],max,n,p,k,min;
f>>n;
for(i=1;i<=n;i++)
f>>x[i];
lis[n]=1;
for(i=n-1;i>=1;i--)
{
max=0;
for(j=i+1;j<=n;j++)
{
if(max<lis[j]&&x[i]<x[j])
max=lis[j];
nex[i]=j;
}
lis[i]=max+1;
}
max=lis[1];
for(i=2;i<=n;i++)
if(max<lis[i])
max=lis[i];
int poz;
poz=1;
g<<max<<"\n";
for(k=max;k>=1;k--)
{
min=20000;
for(i=poz;i<=n-k+1;i++)
if(min>x[i]&&lis[i]==k)
{
p=i;
min=x[i];
}
poz=p;
g<<x[p]<<" ";
}
}