Cod sursa(job #61267)

Utilizator DastasIonescu Vlad Dastas Data 18 mai 2007 19:21:16
Problema Subsir 2 Scor 18
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <cstdio>
#define max 5000

FILE *in = fopen("subsir2.in","r"), *out = fopen("subsir2.out","w");

int n;
int a[max];
int b[max];
int c[max];

void read()
{
    fscanf(in, "%d", &n);

    for ( int i = 0; i < n; ++i )
        fscanf(in, "%d", &a[i]);
}

int main()
{
    read();

    int maxx = 1;

    for ( int i = n-1; i != -1; --i )
    {
        b[i] = 1;
        c[i] = i;

        int min = max;

        for ( int j = n-1; j > i; --j )
        {
            if ( a[i] <= a[j] && a[j] <= min )
            {
                if ( b[i] < b[j] + 1)
                {
                    b[i] = b[j]+1;
                    c[i] = j;
                }
                if ( a[j] < min )
                    min = a[j];
            }
        }

        if ( b[i] > maxx )
            maxx = b[i];
    }

    fprintf(out, "%d\n", maxx);

	return 0;
}