Cod sursa(job #230036)

Utilizator Bogdan_tmmTirca Bogdan Bogdan_tmm Data 12 decembrie 2008 19:55:57
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include<iostream>
#include<stdio.h>
long n;
long a[100001],l[100001];
FILE *f=fopen("scmax.in","r"),*g=fopen("scmax.out","w");
void main()
{
fscanf(f,"%ld",&n);
long i;
for(i=1;i<=n;i++)
 fscanf(f,"%ld",&a[i]);
 long k,max=0;
 l[n]=1;
 for(k=n-1;k>=1;k--)
 {
  max=0;
  for(i=k+1;i<=n;i++)
   if(a[k]<a[i]&&l[i]>max)
    max=l[i];
  l[k]=max+1;
 }
 long imax=n;
  max=l[imax];
  for(i=1;i<=n;i++)
   if(l[i]>max)
    {
     max=l[i];
     imax=i;
    }
  fprintf(g,"%ld\n%ld",max,a[imax]);
  for(i=imax+1;i<=n;i++)
   if(a[imax]<a[i]&&l[i]==max-1)
    fprintf(g,"%ld",a[i]),max--;
}