Cod sursa(job #1107435)

Utilizator Athena99Anghel Anca Athena99 Data 13 februarie 2014 21:32:08
Problema Secv Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <algorithm>
#include <fstream>

using namespace std;

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

const int inf= 1<<30;
const int nmax= 5000;

int v[nmax+1], x[nmax+1], y[nmax+1];

int main(  ) {
    int n, k= 0;
    fin>>n;
    for ( int i= 1; i<=n; ++i ) {
        fin>>v[i];
        x[i]= v[i];
    }

    sort( x+1, x+n+1 ); x[0]= -1;
    for ( int i= 1; i<=n; ++i ) {
        if ( x[i]!=x[i-1] ) {
            ++k;
            y[k]= x[i];
        }
    }

    int sol= inf;
    for ( int i= 1; i<=n; ++i ) {
        if ( v[i]==y[1] ) {
            int ok= 1;
            for ( int j= i; j<=n; ++j ) {
                if ( v[j]==y[ok] ) {
                    ++ok;
                }

                if ( ok-1==k && sol>j-i+1 ) {
                    sol= j-i+1;
                }
            }
        }
    }

    if ( sol==inf ) {
        sol= -1;
    }
    fout<<sol<<"\n";

    return 0;
}