Cod sursa(job #2774680)

Utilizator BlaugranasEnal Gemaledin Blaugranas Data 12 septembrie 2021 12:16:46
Problema Secv Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.86 kb
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
int a[5001],v[5001],f[5001],n,j,i,k,m,r;
int main() {
    freopen("secv.in","r",stdin),freopen("secv.out","w",stdout),scanf("%d",&n);
    for(i=1;i<=n;++i)
        scanf("%d",a+i);
    if(n==1)
        printf("1");
    else {
        memcpy(v,a,sizeof(a)),sort(v+1,v+n+1),f[1]=v[1],k=1;
        for(i=2;i<=n;++i)
            if(v[i]!=v[i-1])
                f[++k]=v[i];
        for(m=n+1,i=1;i<=n;++i)
            if(a[i]==f[1])
                for(r=2,j=i+1;j<=n;++j) {
                    if(a[j]==f[r])
                        ++r;
                    if(r==k+1) {
                        if(m>j-i+1)
                            m=j-i+1;
                        break;
                    }
                }
        printf("%d",m==n+1?-1:m);
    }
    return 0;
}