Pagini recente » Cod sursa (job #1774671) | Cod sursa (job #2695604) | Rating Dobre Andrei Ciprian (Dobre_Andrei_Ciprian_325CB) | Cod sursa (job #2097828) | Cod sursa (job #504333)
Cod sursa(job #504333)
#include <iostream>
#include<fstream>
using namespace std;
ifstream fi("scmax.in");
ofstream fo("scmax.out");
int l[100],x,p[100],a[100],n;
void pd () {
int mlu, i, j;
l[n] = 1;
for (i = n-1; i >= 1; i--) {
mlu = 0;
for (j = i+1; j <= n; j++)
if (a[i]<a[j] and l[j] > mlu)
{
mlu = l[j];
p[i]=j;
x=i;
}
l[i] = mlu+1;
}
}
void refac(int x)
{
fo<<a[x]<<" ";
while(p[x]!=0)
{
x=p[x];
fo<<a[x]<<" ";
}
}
int main()
{
int i;
fi>>n;
for(i=1;i<=n;i++)
fi>>a[i];
pd();
int max=0;
for(i=1;i<=n;i++)
if(max<l[i])
max=l[i];
fo<<max<<"\n";
refac(x);
}