Cod sursa(job #2834218)

Utilizator CrobertCCampeanu Robert CrobertC Data 16 ianuarie 2022 17:39:46
Problema Secv Scor 70
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.17 kb
#include <iostream>
#include <fstream>
#include <algorithm>

using namespace std;

ifstream fin("secv.in");
ofstream fout("secv.out");

int main()
{
    long long x[5001],minn,mini,maxn,xm[10],ex[5001];
    int n,pe=0,te;
    fin>>n;
    fin>>x[1];
    for(int i=2;i<=n;i++){
        fin>>x[i];
        te=1;
        for(int j=1;j<=pe && te==1;j++) if(ex[j]==x[i]) te=0;
        if(te==1){
            pe++;ex[pe]=x[i];
        }
    }
    sort(ex+1, ex+pe+1);
    minn=ex[1];
    maxn=ex[pe];
    int pos=1;
    for(int i=1;i<=n;i++){
        if(x[i]==minn){
            xm[pos]=i;
            pos++;
        }
    }
    int len,lenm=-1,test, nn;
    for(int i=1;i<pos;i++){
        mini=xm[i];
        len=0;
        nn=2;
        test=1;
        while(nn!=pe+1 && test==1){
            test=0;
            for(int i=mini+1;i<=n && test==0;i++){
                if(x[i]==ex[nn]){
                    test=1;
                    len=len+(i-mini);
                    mini=i;
                    nn++;
                }
            }
        }
        if((len+1<lenm || lenm==-1) && test==1) lenm=len+1;
    }
    fout<<lenm;
    return 0;
}