Cod sursa(job #1402883)

Utilizator felixiPuscasu Felix felixi Data 26 martie 2015 21:54:14
Problema Secv Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <algorithm>
#include <fstream>

using namespace std;

ifstream in("secv.in");
ofstream out("secv.out");

const int NMAX = 5000;
const int INF  = 100000000;

int v[NMAX+2], a[NMAX+2], r[NMAX+2];
int N, Ans = (1<<30);

int main() {
    in >> N;
    for( int i = 1;  i <= N;  ++i ) {
        in >> v[i];
        a[i] = v[i];
    }
    sort( a+1, a+N+1 );

    int k = 0;
    for( int i = 1;  i <= N;  ++i ) {
        if( a[i] != a[i-1] )  r[++k] = a[i];
    }

    for( int i = 1;  i <= N;  ++i ) {
        if( v[i] == r[1] ) {
            int ind = 2, j = i+1;
            while( ind <= k && j <= N ) {
                if( v[j] == r[ind] ) {
                    ++ind;
                }

                if( ind == k + 1 ) {
                    Ans = min( Ans, j-i+1 );
                    break;
                }

                ++j;
            }
        }
    }

    if( Ans == (1<<30) ) {
        out << "-1\n";
    }
    else {
        out << Ans << '\n';
    }

    return 0;
}