Pagini recente » Cod sursa (job #818946) | Cod sursa (job #1844755) | Cod sursa (job #1628547) | Cod sursa (job #2760508) | Cod sursa (job #1796318)
#include <fstream>
#include <iostream>
using namespace std;
ifstream in("scmax.in");
ofstream out("scmax.out");
int n,v[100001],best[100001],pr[100001],i,j,ma=0,mai;
void refacere(int k)
{
if(pr[k]!=-1)
refacere(pr[k]);
out<<v[k]<<" ";
}
int main()
{
in>>n;
for (i=1;i<=n;i++)
in>>v[i];
for (i=1;i<=n;i++)
{
best[i]=1;
pr[i]=-1;
for (j=1;j<i;j++)
{
if (v[j]<v[i]&&best[j]>=best[i])
{best[i]=1+best[j]; pr[i]=j;}
}
if (best[i]>ma) {ma=best[i]; mai=i;}
}
out<<ma<<"\n";
refacere(mai);
return 0;
}