Cod sursa(job #882304)

Utilizator thepunisher38Tomulescu Ninel thepunisher38 Data 18 februarie 2013 23:50:18
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include<iostream>
#include<stdio.h>
long n;
long a[100001],l[100001];
FILE *f=fopen("scmax.in","r"),*g=fopen("scmax.out","w");
int 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--;
    return 0;
}