Cod sursa(job #2018535)

Utilizator FlorinHajaFlorin Gabriel Haja FlorinHaja Data 5 septembrie 2017 12:28:52
Problema Secv Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <fstream>

using namespace std;

ifstream f("secv.in");
ofstream g("secv.out");

int n, i, j, max1, max2, ult[5005], a[5005], b[5005];

int main() {
    f >> n;
    for (i = 1; i <= n; i++)
        f >> a[i];
    for (i = n; i >= 1; i--) {
        max1 = 0;
        ult[i] = 6000;

        for (j = i+1; j <= n; j++)
            if (max1 < b[j] && a[i] < a[j])
                max1 = b[j];

        for (j = i+1; j <= n; j++)
            if (max1 == b[j] && ult[j] < ult[i])
                ult[i] = ult[j];

        if (max1 == 0)
            ult[i] = i;
        b[i] = max1+1;
    }
    for (i = 1; i <= n; i++)
        if (max1 < b[i])
            max1 = b[i], max2 = ult[i]-i+1;
        else if (max1 == b[i] && ult[i]-i+1 < max2)
            max2 = ult[i]-i+1;

    g << max2;
}