Cod sursa(job #2466387)

Utilizator GeoeyMexicanuBadita George GeoeyMexicanu Data 1 octombrie 2019 23:24:43
Problema Secv Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.07 kb
#include <iostream>
#include <fstream>
#include <set>

using namespace std;

int d[5010],a[5010],i,j,n,m,min1,max1;
set<int> h;
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];
        h.insert(a[i]);
    }
    int numD = h.size();
    if(numD == 1){
        g<<1;
        return 0;
    }
    auto it = h.end();
    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(d[i] == numD - 1){
                int t = i;
                int nr = 0;
                int prc = d[i];
                it--;
                it--;
                while(prc != 0){
                    t--;
                    if(d[t] == prc - 1 && a[t] == *it){
                        prc = d[t];
                        it--;
                    }
                    nr++;
                }
                g<<nr + 1;
                return 0;
        }
    }
    g<<-1;
}