Cod sursa(job #3288205)

Utilizator mihail_11Ionescu Mihail mihail_11 Data 20 martie 2025 20:43:16
Problema Secv Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin("secv.in");
ofstream fout("secv.out");
pair<int,int> t[5005];
vector<int> poz1;
int v[5005];
int main()
{
    int i,n,val,nr=0,lg,minlen,j;
    bool cond;
    fin>>n;
    minlen=n+1;
    for(i=1;i<=n;++i)
    {
        fin>>val;
        t[i]={val,i};
    }
    sort(t+1,t+n+1);
    t[0].first=-1;
    for(i=1;i<=n;++i)
    {
        if(t[i].first>t[i-1].first)
        {
            ++nr;
        }
        v[t[i].second]=nr;
        if(nr==1)
            poz1.push_back(t[i].second);
    }
    for(i=0;i<poz1.size();++i)
    {
        lg=2;
        for(j=1+poz1[i];j<=n;++j)
        {
            if(v[j]==lg)
                ++lg;
            if(lg==nr+1)
            {
                minlen=min(minlen,j-poz1[i]+1);
                break;
            }
            if(v[j]==1 && lg==2)
                break;
        }
    }
    if(minlen==n+1)
    {
        fout<<-1;
        return 0;
    }
    fout<<minlen;
    return 0;
}