Cod sursa(job #1605844)

Utilizator bogdan.bl15Luncan Bogdan bogdan.bl15 Data 19 februarie 2016 15:47:04
Problema Subsir crescator maximal Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <stdio.h>

using namespace std;
FILE *f=fopen("scmax.in","r");
FILE *g=fopen("scmax.out","w");
int l[100005],poz[100005],a[100005];
int i,j,n;

int main()
{

 fscanf(f,"%d",&n);
 for(i=1;i<=n;i++) fscanf(f,"%d",&a[i]);


 l[n]=1;
 poz[n]=-1;
 for(i=n-1;i>0;i--)
    for(l[i]=1,poz[i]=-1,j=i+1;j<=n;j++)
     if(a[i]<a[j]&&l[i]<1+l[j])
       {l[i]=1+l[j];poz[i]=j;}

 int max=l[i],pozmax=1;
 for(int i=2;i<=n;i++)
    if(max<l[i]) {max=l[i];pozmax=i;}
    fprintf(g,"%d\n",max);

 for(i=pozmax;i!=-1;i=poz[i])
    fprintf(g,"%d ",a[i]);
    fprintf(g,"\n");
    fclose(f);
    fclose(g);

}