Cod sursa(job #1649240)

Utilizator BovisioNitica Ionut Bogdan Bovisio Data 11 martie 2016 12:55:57
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 1 kb
#include <cstdio>
#define dimax 100000
using namespace std;
int main()
{
    int h=0,solutie[dimax],k,v[dimax],best[dimax],lenmax=-1,i,j,n;
    FILE *f=fopen("scmax.in","r"), *l=fopen("scmax.out","w");
    fscanf(f,"%i",&n);
    for(i=0;i<n;i++)
        fscanf(f,"%i",&v[i]);
    for(i=0;i<n;i++)
        best[i]=1;
    for(i=0;i<n;i++)
       for(j=0;j<i;j++)
           if((v[i]>v[j])&&(best[i]<best[j]+1))
              {
                    best[i]=best[j]+1;
                    if(lenmax<best[i])
                        {
                            lenmax=best[i];
                            k=i;
                        }
              }
    fprintf(l,"%i\n",lenmax);
    for(i=k-1;i>=0;i--)
    {
            if(best[i]+1==lenmax)
            {
                 solutie[++h]=v[i];     //printf("%i ",v[i]);
                 lenmax--;
            }

    }
    solutie[0]=v[k];
    for(int g=h;g>=0;g--)
        fprintf(l,"%i ",solutie[g]);
    fprintf(l,"\n");
    return 0;
}