Cod sursa(job #240530)

Utilizator Mishu91Andrei Misarca Mishu91 Data 7 ianuarie 2009 20:54:48
Problema Secv Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <cstdio>
#include <algorithm>

using namespace std;

#define MAX_N 5005

int V[MAX_N], A[MAX_N], B[MAX_N];
int N, Rez = 0x3f3f3f;

void citire()
{
    scanf("%d",&N);

    for(int i = 1; i <= N; ++i)
    {
        scanf("%d",V+i);
        A[i] = V[i];
    }
}

void solve()
{
    sort(A+1, A+N+1);
    A[0] = -1;

    int Nr = 0;
    for(int i = 1; i <= N; ++i)
        if(A[i] != A[i-1])
            B[++Nr] = A[i];

    for(int i = 1; i <= N; ++i)
    {
        if(V[i] != B[1]) continue;

        int j, k = 2;

        for(j = i + 1; j <= N+1; ++j)
        {
            if(k == Nr+1)
            {
                Rez = min(Rez, j - i);
                break;
            }
            if(V[j] == B[k])
                ++k;
        }
    }
    printf("%d\n",Rez);
}

int main()
{
    freopen("secv.in","rt",stdin);
    freopen("secv.out","wt",stdout);

    citire();
    solve();
}