Cod sursa(job #1739245)

Utilizator Dan_RadulescuRadulescu Dan Dan_Radulescu Data 8 august 2016 23:39:08
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include<stdio.h>
using namespace std;
FILE *f1=fopen("scmax.in","r");
FILE *f2=fopen("scmax.out","w");
int a[100001],n,i,L[100001],maxs,t[100001],j;
int main(){
   fscanf(f1,"%d",&n);
   for (i=1;i<=n;i++)
    fscanf(f1,"%d",&a[i]);
   fclose(f1);
   L[n]=1;
   for (i=n-1;i>=1;i--){
    maxs=0;
    for (j=i+1;j<=n;j++)
      if (a[i]<a[j] && maxs<L[j]){
        maxs=L[j];
        t[i]=j;
      }
    L[i]=1+maxs;
   }
   maxs=-1;
   for (i=1;i<=n;i++)
     if (maxs<L[i]) {
        maxs=L[i];
        j=i;
     }
  fprintf(f2,"%d\n",maxs);
  while(j!=0){
      fprintf(f2,"%d ",a[j]);
      j=t[j];
  }
   return 0;
}