Pagini recente » Cod sursa (job #2844318) | Cod sursa (job #1252884) | Cod sursa (job #2123664) | Istoria paginii utilizator/niutenisu | Cod sursa (job #1504041)
#include <fstream>
using namespace std;
ifstream fi("scmax.in");
ofstream fo("scmax.out");
void afisare(int k,int t[],int v[])
{ if(t[t[k]]!=-1)
afisare(t[k],t,v);
fo<<v[t[k]]<<" ";
}
int main()
{ int i,j,v[100005],n,dp[100005],t[100005],max=0;
fi>>n;
for(i=1;i<=n;i++)
{dp[i]=1;t[i]=-1;
fi>>v[i];
}
for(i=1;i<=n;i++)
{
for(j=1;j<i;j++)
if(v[j]<v[i])
if(dp[i]<dp[j]+1)
{
dp[i]=dp[j]+1;
t[i]=j;
}
}
for(i=1;i<=n;i++)
if(dp[i]>max)
{max=dp[i];j=i;}
fo<<max<<endl;
afisare(j,t,v);
fo<<v[j];
}