Cod sursa(job #994698)

Utilizator gbi250Gabriela Moldovan gbi250 Data 6 septembrie 2013 01:02:16
Problema Secv Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <cstdio>
#include <algorithm>
using namespace std;

int n, i, j, k=1, len, MIN=0x3f3f3f3f, pos, v[5001], v_sorted[5001], v_unique[5001];
bool sw;

int main()
{
    freopen("secv.in", "r", stdin);
    freopen("secv.out", "w", stdout);
    scanf("%d", &n);
    for(i=1; i<=n; ++i)
    {
        scanf("%d", &v[i]);
        v_sorted[i]=v[i];
    }
    sort(v_sorted+1, v_sorted+n+1);

    v_unique[1]=v_sorted[1];
    for(i=2; i<=n; ++i)
        if(v_sorted[i]!=v_unique[k])
            v_unique[++k]=v_sorted[i];

    for(i=1; i<=n; ++i)
        if(v[i] == v_unique[1])
        {
            len=1; pos=2;
            for(j=i+1; j<=n; ++j)
            {
                ++len;
                if(v[j] == v_unique[pos])
                    ++pos;

                if(pos == k+1)
                {
                    if(len<MIN)
                        MIN=len, sw=1;
                    break;
                }
           }
        }

    if(sw)
        printf("%d\n", MIN);
    else
        printf("-1\n");
    return 0;
}