Cod sursa(job #871996)

Utilizator RusuDRusu Daniel RusuD Data 5 februarie 2013 17:35:19
Problema Subsir crescator maximal Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <stdio.h>
using namespace std;
long ok,l,mn,n,v[100001],i,j,nr,mx,aj[100001],h[100001];
int main()
{FILE *fin=fopen("scmax.in","r");
 FILE *fout=fopen("scmax.out","w");
 fscanf(fin,"%ld",&n);
 for(i=1;i<=n;i++)
  fscanf(fin,"%ld",&v[i]);
 for(i=1;i<=n;i++)
  {ok=1;j=i+1;aj[0]=1;aj[aj[0]]=v[i];
   while(ok!=0)
    {mn=2000000000;ok=0;
     for(l=j;l<=n;l++)
      if(mn>v[l] &&aj[aj[0]]<v[l]) {ok=l;mn=v[l];}
     if(ok!=0) {aj[0]++;aj[aj[0]]=v[ok];j=ok;}
    }
   if(aj[0]>h[0])
    {for(j=0;j<=aj[0];j++)
      h[j]=aj[j];
    }
  }
 fprintf(fout,"%ld\n",h[0]);
 for(i=1;i<=h[0];i++)
  fprintf(fout,"%ld ",h[i]);
 fprintf(fout,"\n");
 fclose(fin);fclose(fout);
 return 0;
}