Cod sursa(job #3172461)

Utilizator Stefanstef99Stefan Puica Stefanstef99 Data 20 noiembrie 2023 18:05:33
Problema Secv Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <bits/stdc++.h>

using namespace std;

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


/**
8
2 1 3 2 1 3 4 5
  p
c= 1 2 3 4 5
*/

int n,a[5005],b[5005],c[5005],m;

///ret lungimea min a secventei care incepe cu a[p] si contine pe c
int minlen(int p)
{
    int i,j=1;
    for(i=p;i<=n;i++)
    {
        if(a[i]==c[j]) j++;
        if(j>m) return i-p+1;
    }
    return -1;
}

int main()
{
    int i,ans=1e9,k;
    fin>>n;
    for(i=1;i<=n;i++)
    {
        fin>>a[i];
        b[i]=a[i];
    }
    sort(b+1,b+n+1);
    c[++m]=b[1];
    for(i=2;i<=n;i++)
        if(b[i]!=c[m]) c[++m]=b[i];
    for(i=1;i<=n;i++)
    {
        k=minlen(i);
        if(k!=-1 && k<ans) ans=k;
    }
    if(ans==1e9) ans=-1;
    fout<<ans;
    return 0;
}