Cod sursa(job #863395)

Utilizator alex45meOlaru Alex alex45me Data 23 ianuarie 2013 19:43:16
Problema Subsir crescator maximal Scor 35
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include <iostream>
#include <stdio.h>

using namespace std;


FILE *f=fopen("scmax.in","r");
FILE *g=fopen("scmax.out","w");

 int p[100005],a[100005],v[100005],mx,mx1,i,j,ok,n;


int main()
{
      fscanf(f,"%d",&n);
      for (i=1;i<=n;i++)
           fscanf(f,"%d",&v[i]);
      a[n]=1;
      for (i=n-1;i>=1;i--){
          ok=0;
          mx1=0;
          a[i]=1;
           for (j=i+1;j<=n;j++)
               if (v[j]>v[i] && a[j]+1>a[i])
                 {
                   a[i]=a[j]+1;
                   ok=j;
                 }

           p[0]++;
           p[p[0]]=v[ok];
      }
      for (i=1;i<=n;i++)
	       if (a[i]>mx) mx=a[i];
      fprintf(g,"%d\n",mx);
      fprintf(g,"%d ",v[mx]);
      for (i=mx-1;i>=1;i--)
          fprintf(g,"%d ",p[i]);

     fclose(g);
	return 0;
}