Pagini recente » Cod sursa (job #247484) | Cod sursa (job #1755403) | Rating Ovidiu Gabriel Pracsiu (OvidiuMan) | Cod sursa (job #1242709) | Cod sursa (job #482667)
Cod sursa(job #482667)
# include <algorithm>
using namespace std;
const char FIN[] = "secv.in", FOU[] = "secv.out" ;
const int MAX = 5005, oo = 0x3f3f3f3f ;
int A[MAX], C[MAX] ;
int N, sol = oo ;
int main ( void ) {
freopen ( FIN, "r", stdin ) ;
scanf ( "%d", &N ) ;
for ( int i = 1; i <= N; ++i ) {
scanf ( "%d", A + i ) ;
C[i] = A[i] ;
}
sort ( C + 1, C + N + 1 ) ;
int M = unique ( C + 1, C + N + 1 ) - C - 1 ;
for ( int i = N; i ; --i ) {
if ( A[i] == C[M] ) {
int poz = i, pozf = 1 ;
for ( int j = M - 1; j ; --j ) {
for ( ; poz && A[poz] != C[j] ; --poz ) ;
if ( poz < 1 ) {
pozf = 0 ;
break ;
}
}
if ( pozf && i - poz + 1 < sol ) {
sol = i - poz + 1 ;
}
}
}
fprintf ( fopen ( FOU, "w" ) , "%d" , sol != oo ? sol : -1 ) ;
return 0 ;
}