Cod sursa(job #365317)

Utilizator LuffyBanu Lavinia Luffy Data 18 noiembrie 2009 13:41:52
Problema Subsir crescator maximal Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include<stdio.h>
#define dim 100002
using namespace std;
int v[dim],l[dim],i,n,max,poz;

int cauta(int k)
{int j;
 for(j=k;j<=n;j++)
  if(v[j]>v[i])
	  return l[j];
return 0;   
}

int main()
{
 FILE *f=fopen("scmax.in","r"), *g=fopen("scmax.out","w");
 
 fscanf(f,"%d",&n);
  for(i=1;i<=n;i++)
   fscanf(f,"%d",&v[i]);
  
   for(i=n;i>=1;i--)
  {l[i]=cauta(i)+1; 
   if(l[i]>max) {max=l[i]; poz=i;}
  }
  
  fprintf(g,"%d\n",max);
  
   for(i=poz;i<=n;i++)
  if(l[i]==max) {max--; fprintf(g,"%d ",v[i]);}
fprintf(g,"\n");
  
fclose(f);
fclose(g);
return 0;
}