Cod sursa(job #2464658)

Utilizator GeoeyMexicanuBadita George GeoeyMexicanu Data 28 septembrie 2019 18:43:35
Problema Secv Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.07 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int n,x,v[5010],d[5010];
int main()
{
    f>>n;
    int max1 = -1;
    for(int i=1;i<=n;i++){
        f>>v[i];
        if(max1<v[i]){
            max1 = v[i];
        }
    }
    for(int i=1;i<=n;i++){
        for(int j=i-1;j>=1;j--){
            if(v[j] < v[i]){
                d[i] = max(d[i],d[j]+1);
            }
        }
    }
    int maxNr = 0;
    int inde;
    for(int i=1;i<=n;i++){
        if(v[i] == max1 && d[i] == max1-1){
            inde = i;
            int j = i-1;
            int nr = 0;
            int pri = d[i];
            while(pri != 0){
                if(d[j] == pri - 1){
                    pri = d[j];
                }
                nr++;
                j--;
            }
            maxNr = max(maxNr,nr);
            break;
        }
    }
    maxNr++;
    for(int i=n;i>=1;i--){
        if(max1 == v[i]){
            maxNr = maxNr + (i-inde);
            break;
        }
    }
    g<<maxNr;
}