Pagini recente » Cod sursa (job #46084) | Cod sursa (job #993448) | Cod sursa (job #1072382) | Cod sursa (job #2940928) | Cod sursa (job #2296148)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std ;
const int NR = 5005 ;
int maxim = ( 1 << 30 ) ;
ifstream f ("secv.in") ;
ofstream g ("secv.out") ;
vector < int > a ( NR ) ;
vector < int > d ( NR , 1 ) ;
vector < int > l ( NR , 1 ) ;
int s [ NR ] ;
int main ()
{
int n , cnt = 1 ; f >> n ;
for ( int i = 1 ; i <= n ; ++ i ) f >> a [ i ] , s[ i ] = a [ i ] , d [ i ] = i ;
sort ( s + 1 , s + n + 1 ) ;
for ( int i = 2 ; i <= n ; ++ i ) if ( s[ i ] != s [ i - 1 ] ) cnt ++ ;
for ( int i = 2 ; i <= n ; ++ i )
{
for ( int j = 1 ; j < i ; ++ j )
{
if ( l [ j ] + 1 >= l [ i ] && a [ i ] > a [ j ] ) l [ i ] = l [ j ] + 1 , d [ i ] = d [ j ] ;
}
if ( l [ i ] == cnt && maxim > i - d [ i ] ) maxim = i - d [ i ] + 1;
}
g << maxim << "\n" ;
return 0 ;
}