Cod sursa(job #907126)

Utilizator santoriniPanea Catalin santorini Data 7 martie 2013 17:26:21
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include<cstdio>
using namespace std;
int l[100001],i,max1,n,j,ok,poz;
long s[100001];
int main()
{FILE *f = fopen("scmax.in", "r");
 FILE *g = fopen("scmax.out", "w");
 fscanf(f,"%d",&n);
 for(i=1;i<=n;i++)
    fscanf(f,"%ld",&s[i]);
 l[n]=1;
 for(i=n-1;i>=1;i--)
 {max1=1;l[i]=1;ok=0;
     for(j=i+1;j<=n;j++)
         if(s[i]<s[j]&&max1<=l[j])
            { max1=l[j];
              ok=1;}
    if(ok)l[i]=max1+1;
 }
/*for(i=1;i<=n;i++)
   g<<l[i]<<" ";
g<<'\n';*/
max1=l[1];poz=1;
for(i=1;i<=n;i++)
    if(l[i]>max1)
    {max1=l[i];
     poz=i;}
fprintf(g,"%d",max1);
fprintf(g,"\n");
fprintf (g,"%ld ",s[poz]);
max1--;
for(i=poz+1;i<=n;i++)
    if(l[i]==max1&&s[i]>=s[poz])
    {fprintf(g,"%ld ",s[i]);poz=i;max1--;}
fclose(f);
fclose(g);
return 0;
}