Cod sursa(job #1713663)

Utilizator fanache99Constantin-Buliga Stefan fanache99 Data 6 iunie 2016 09:26:21
Problema Secv Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include<cstdio>
#include<algorithm>
#define MAXN 5010
#define INF 2000000000
using namespace std;
int v[MAXN],v0[MAXN];
int main(){
    freopen("secv.in","r",stdin);
    freopen("secv.out","w",stdout);
    int n,i,j=0,answer=INF,k,ok,nr;
    scanf("%d",&n);
    for(i=1;i<=n;i++){
        scanf("%d",&v[i]);
        v0[i]=v[i];
    }
    sort(v0+1,v0+n+1);
    v0[0]=INF;
    for(i=1;i<=n;i++)
        if(v0[i]!=v0[i-1]){
            j++;
            v0[j]=v0[i];
        }
    nr=j;
    for(i=1;i<=n-nr+1;i++){
        k=1;
        for(j=i;j<=n&&k<=nr;j++)
            if(v[j]==v0[k])
                k++;
        if(k>nr&&j-i<answer)
            answer=j-i;
    }
    if(answer==INF)
        printf("-1");
    else
        printf("%d",answer);
    return 0;
}