Pagini recente » Cod sursa (job #2464060) | Cod sursa (job #2464575) | Cod sursa (job #2464250) | Cod sursa (job #1986018) | Cod sursa (job #327985)
Cod sursa(job #327985)
#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;
#define Nmax 12101
#define Inf 0x3f3f3f3f
int x[Nmax],n,nr,sol,i,j,xx;
vector<int> v,s;
int a[201000100];
int main()
{
freopen("secv.in","r",stdin);
freopen("secv.out","w",stdout);
scanf("%d", &n);
for (i=0;i<n;++i)
{
scanf("%d", &xx);
v.push_back(xx);
s.push_back(xx);
}
sort(v.begin(),v.end());
sol=Inf;
a[v[0]]=1;
nr=1;
for (i=1;i<n;++i)
if (v[i]!=v[i-1])
{
nr++;
a[v[i]]=nr;
}
for (i=1;i<=nr;++i) x[i]=-Inf;
for (i=0;i<=n;++i)
{
if (a[s[i]]==1) x[1]=i;
else x[a[s[i]]]=x[a[s[i]]-1];
sol=min(sol,i-x[nr]);
}
if (sol==Inf) printf("-1");
else
printf("%d", sol+1);
return 0;
}