Pagini recente » Cod sursa (job #2597917) | Cod sursa (job #2575744) | Cod sursa (job #1592673) | Cod sursa (job #2194737) | Cod sursa (job #918527)
Cod sursa(job #918527)
#include<cstdio>
#include<algorithm>
#include<vector>
using namespace std;
#define MAX 5001
#define pb push_back
int N , A[MAX] , minn ;
bool sw;
vector<int> v;
void citire();
void solve();
void tipar();
int main()
{
citire();
solve();
tipar();
return 0;
}
void citire()
{
freopen("secv.in" , "r" , stdin );
scanf("%d" , &N );
for( int i = 1 ; i <= N ; ++i )
{
scanf("%d" , &A[i]);
v.pb(A[i]);
}
}
void solve()
{
minn = N+1;
sort(v.begin(),v.end());
v.erase(unique(v.begin(),v.end()),v.end());
sw = 0;
for(int i = 1 ; i <= N-(int)v.size()+1 ; ++i)
{
if(A[i]!=v[0])
continue;
int p = 1 , j;
for(j = i+1 ; j <= N && p < (int)v.size() ; ++j )
if(A[j]==v[p])p++;
if(p == (int)v.size())
{
sw = 1;
if(j-i < minn )minn = j-i;
}
}
}
void tipar()
{
freopen("secv.out" , "w" , stdout );
if(!sw)printf("-1");
else printf("%d" , minn );
}