Cod sursa(job #66186)

Utilizator DastasIonescu Vlad Dastas Data 16 iunie 2007 13:27:30
Problema Secv Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <cstdio>
#include <algorithm>
#include <memory>
#define maxn 5001

FILE *in = fopen("secv.in","r"), *out = fopen("secv.out","w");

int n;
int a[maxn];
int b[maxn];
int c[maxn];

void read()
{
    fscanf(in, "%d", &n);

    for ( int i = 1; i <= n; ++i )
        fscanf(in, "%d", &a[i]), b[i] = a[i];


}

int main()
{
    read();
    std::sort(b+1, b+n);

    int k = 0;
    c[++k] = b[1];
    for ( int i = 2; i <= n; ++i )
        if ( b[i] != c[k] )
            c[++k] = b[i];

    int min = (1<<31)-1;

    for ( int i = 1; i <= n; ++i )
    {
        if ( a[i] == c[1] )
        {
            int cnt = 2;
            for ( int j = i + 1; j <= n; ++j )
                if ( a[j] == c[cnt] )
                    ++cnt;

            if ( cnt == k+1 )
                if ( min > cnt + i )
                    min = cnt + i - 1;
        }
    }

    fprintf(out, "%d\n", min);


	return 0;
}

/*

8
2 1 3 2 1 3 4 5

  1   2   3 4 5

*/