Pagini recente » Cod sursa (job #1853806) | Cod sursa (job #1681715) | Cod sursa (job #1930899) | Cod sursa (job #2031614) | Cod sursa (job #897261)
Cod sursa(job #897261)
#include<fstream>
#include<algorithm>
#include<cstring>
#define NMAX 5005
#define BIG 1<<30
#define max(a,b) ((a)>(b)?(a):(b))
using namespace std;
ifstream f("secv.in");
ofstream g("secv.out");
int n,v[NMAX],aux[NMAX],aux_size,sir[NMAX];
int start,final,res;
void read ( void )
{
f>>n;
for(int i(1); i <= n ; ++i )
f>>v[i];
memcpy(sir,v,sizeof(v));
f.close();
}
void solve( void )
{
sort(sir+1,sir+n+1);
aux[1]=sir[1];
aux_size++;
for(int i(2); i <= n; ++i )
if(sir[i] != sir[i-1] )
aux[++aux_size]=sir[i];
res=BIG;
for(int i(1); i <= n ; ++i )
if( v[i] == sir[1] )
{
int numb=2;
for(int ii(i+1); ii <= n ; ++ii)
{
if( v[ii] == aux[numb] )
numb++;
if(numb == aux_size + 1 )
{
if( ( ii-i+1) < res )
res=ii-i+1;
break;
}
}
}
}
inline void write ( void )
{
if(res == BIG )
g<<"-1"<<"\n";
else
g<<res<<"\n";
g.close();
}
int main()
{
read();
solve();
write();
return 0;
}