Pagini recente » Cod sursa (job #2295539) | Cod sursa (job #430058) | Cod sursa (job #2986909) | Statistici Paul Eduard (Paul201899) | Cod sursa (job #1570105)
#include <cstdio>
FILE *f=fopen("scmax.in","r");
FILE *g=fopen("scmax.out","w");
using namespace std;
int n,mx,k,a[100001],i,l[100001];
void solve()
{
int i,j;
l[n]=1;
for (i=n-1;i>=1;i--)
{
mx=0;
for (j=i+1;j<=n;j++)
if (l[j]>mx && a[i]<a[j])
mx=l[j];
l[i]=mx+1;
}
mx=0;
for (i=1;i<=n;i++)
if (l[i]>mx)
{
mx=l[i];
k=i;
}
}
void afis()
{
int i,j;
fprintf(g,"%d\n",mx);
for (i=k;i<=n && mx;i++)
if (l[i]==mx)
{
fprintf(g,"%d ",a[i]);
mx--;
}
}
int main()
{
fscanf(f,"%d",&n);
for (i=1;i<=n;i++)
fscanf(f,"%d",&a[i]);
solve();
afis();
fclose(f);
fclose(g);
return 0;
}