Cod sursa(job #1668762)

Utilizator MihneaGhiraMihnea MihneaGhira Data 30 martie 2016 00:56:43
Problema Secv Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include<fstream>
#include<algorithm>
using namespace std;
ifstream fin("secv.in");
ofstream fout("secv.out");
int N,i,nrdis,j,minim;
int v[5001],d[5001],p[5001],w[5010];
int main(){
    fin>>N;
    for(i=1;i<=N;i++){
        fin>>v[i];
        w[i]=v[i];
    }
    sort(w+1,w+N+1);
    w[0]=2000000001;
    for(i=1;i<=N;i++)
        if(w[i]!=w[i-1])
            nrdis++;

     for(i=1;i<=N;i++){
        d[i]=1;
        p[i]=i;
        for(j=1;j<i;j++){
            if(v[j]>=v[i])
                continue;
            if(d[i]<=d[j]+1){
                d[i]=d[j]+1;
                p[i]=p[j];
            }
        }
    }
    minim=2000000000;
    for(i=1;i<=N;i++){
        if(d[i]==nrdis && minim>i-p[i]+1)
            minim=i-p[i]+1;
    }
    if(minim==2000000000)
        fout<<-1;
    else
        fout<<minim;
    return 0;
}