Cod sursa(job #3187141)

Utilizator dobreraduDobre Radu Fabian dobreradu Data 27 decembrie 2023 18:43:25
Problema Secv Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.08 kb
#include <bits/stdc++.h>
#define f first
#define s second
using namespace std;

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

int main()
{
    set<int> s;
    int n;
    in>>n;
    int v[n+5];
    pair<int,int> d[n+5];
    for(int i=0;i<n;i++){
        in>>v[i];
        s.insert(v[i]);
        d[i]={-1,-1};
    }
    auto it=s.begin();
    int vv[n+5],nn=0;
    for(auto i:s)vv[nn++]=i;
    for(int i=0;i<nn;i++)
    {
        for(int j=0;j<n;j++)
        {
            if(vv[i]==v[j])
            {
                if(i==0)
                {
                    d[j]={vv[i],j};
                }
                else if(d[j].f==vv[i-1])
                {
                    d[j].f=vv[i];
                }
            }
            if(j!=0&&(d[j-1].f>d[j].f||(d[j-1].f==d[j].f&&d[j-1].s>d[j].s)))
            {
                d[j]=d[j-1];
            }
        }
    }
    int minn=INT_MAX;
    for(int i=0;i<n;i++)
    {
        if(d[i].f==vv[nn-1]){
            minn=min(minn,i-d[i].s+1);
        }
    }
    out<<(minn==INT_MAX?-1:minn);
}