Cod sursa(job #2466360)

Utilizator GeoeyMexicanuBadita George GeoeyMexicanu Data 1 octombrie 2019 22:31:58
Problema Secv Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <iostream>
#include <fstream>

using namespace std;

int d[5010],a[5010],i,j,n,m,min1,max1;

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

int main()
{
    min1 = 2000000010;
    max1 = -1;
    f>>n;
    for(i=1;i<=n;i++){
        f>>a[i];
        if(min1>a[i])
            min1 = a[i];
        if(max1<a[i])
            max1 = a[i];
    }
    for(i=1;i<=n;i++){
        for(j=i-1;j>=1;j--){
            if(a[i]>a[j]){
                d[i] = max(d[i],d[j]+1);
                if(max1 == a[i] && d[i] == max1 - 1){
                    int t = i;
                    int nr = 0;
                    int prc = a[i];
                    while(prc != min1 || d[t] != 0){
                        t--;
                        if(a[t] == prc - 1)
                            prc = a[t];
                        nr++;
                    }
                    g<<nr + 1;
                    return 0;
                }
            }
        }
    }
    g<<-1;
}