Cod sursa(job #1593375)

Utilizator RaduToporanRadu Toporan RaduToporan Data 8 februarie 2016 16:21:09
Problema Secv Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <cstdio>
#include <algorithm>

using namespace std;
int n,i,j,sol,a[5005],b[5005],v[5005],k,best=2000000000;

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]), b[i]=a[i];
    sort(b+1,b+n+1);
    for (i=1; i<=n; i++) if (b[i]!=b[i-1]) v[++k]=b[i];
    for (i=1; i<=n; i++)
        if (a[i]==v[1])
    {
        int indice=1;
        for (j=i+1; j<=n+1; j++)
        {
            if (indice==k)
            {
                sol=j-i;
                if (sol<best) best=sol;
                break;
            }
            if (a[j]==v[indice+1]) indice++;
        }
    }
    if (best==2000000000) printf("-1\n"); else printf("%d\n",best);
    return 0;
}