Pagini recente » Cod sursa (job #1781210) | Cod sursa (job #2165600) | Cod sursa (job #3178776) | Cod sursa (job #2393813) | Cod sursa (job #897291)
Cod sursa(job #897291)
#include<fstream>
#include<algorithm>
#include<cstring>
#define NMAX 5005
#define BIG 5001
#define min(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=1;
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] )
{
if(aux_size >=2 )
{
int numb=2;
for(int ii(i+1); ii <= n ; ++ii)
{
if( v[ii] == aux[numb] )
++numb;
if(numb == aux_size + 1 )
{
res=min(ii-i+1,res);
break;
}
}
}
else
{
res=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;
}