Cod sursa(job #2036663)

Utilizator alexandrainfoAlexandra Florea alexandrainfo Data 10 octombrie 2017 22:07:26
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include <cstdio>
using namespace std;
FILE *f, *g;
int n,ma,maxi,i,k,j,v[100001],l[100001];
int main()
{f=fopen ("scmax.in","r");
g=fopen ("scmax.out","w");
fscanf (f,"%d",&n);
for (i=1;i<=n;++i)
fscanf (f,"%d",&v[i]);
l[n]=1;
for (i=n-1;i>=1;--i)
{ma=0;
for (j=i+1;j<=n;++j)
if (v[i]<v[j]&&l[j]>ma&&i<j)
ma=l[j];
l[i]=ma+1;
}
maxi=k=0;
for (i=1;i<=n;++i)
if (l[i]>maxi)
maxi=l[i],k=i;
fprintf (g,"%d\n",maxi);
fprintf (g,"%d ",v[k]);
--maxi;
for (i=k+1;i<=n;++i)
if (l[i]==maxi&&v[k]<v[i]&&k<i)
{fprintf (g,"%d ",v[i]);
k=i;
--maxi;
}
fprintf (g,"\n");
return 0;
}