Pagini recente » Cod sursa (job #726332) | Cod sursa (job #3147248) | Cod sursa (job #1884519) | Cod sursa (job #2285314) | Cod sursa (job #1765892)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
const int MAXN=100001;
int a[MAXN],l[MAXN],p[MAXN],n,MAX=1,ind;
int main()
{
f>>n;
for(int i=1;i<=n;i++)
f>>a[i];
l[n]=1;p[n]=-1;
for(int i=n-1;i>=1;i--)
{
l[i]=1;
p[i]=-1;
for(int j=i+1;j<=n;j++)
if(a[i]<a[j] && l[j]+1>l[i])
{
l[i]=l[j]+1;
p[i]=j;
}
if(l[i]>MAX)
{
ind=i;
MAX=l[i];
}
}
int i=ind;
g<<MAX<<'\n';
g<<a[ind]<<' ';
while(p[i]!=-1)
{
g<<a[p[i]]<<' ';
i=p[i];
}
return 0;
}