Cod sursa(job #486062)

Utilizator ariel_roAriel Chelsau ariel_ro Data 20 septembrie 2010 14:06:19
Problema Subsir crescator maximal Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.98 kb
#include <iostream>
#include <stdlib.h>
#include <fstream>

using namespace std;

int main()
{
    FILE *in = fopen("scmax.in", "r");
    FILE *out = fopen("scmax.out", "w");

    int N;
    fscanf(in, "%d", &N);
    int v[N], lung[N];
    for (int i = 0; i < N; i++)
        fscanf(in, "%d", &v[i]);

    for (int i = 0; i < N - 1; i++)
    {
        int l = 1;
        for (int j = i + 1; j < N; j++)
        {
            if (v[j - 1] < v[j] && v[i] < v[j])
                l++;
        }
        lung[i] = l;
    }
    lung[N - 1] = 1;

    int best = lung[0], bestPoz = 0;
    for (int i = 1; i < N; i++)
    {
        if (lung[i] > best)
        {
            best = lung[i];
            bestPoz = i;
        }
    }

    fprintf(out, "%d\n", best);
    fprintf(out, "%d ", v[bestPoz]);
    for (int i = bestPoz + 1; i < N; i++)
    {
        if (v[i] > v[i - 1] && v[i] > v[bestPoz])
            fprintf(out, "%d ", v[i]);
    }

    return 0;
}