Pagini recente » Cod sursa (job #1878158) | Cod sursa (job #2991133) | Cod sursa (job #2002836) | Cod sursa (job #1121646) | Cod sursa (job #1772913)
#include <bits/stdc++.h>
using namespace std;
int v[5005];
struct nr{
int x,poz;
}sorted[5005];
bool comp(nr x, nr y){
return x.x < y.x;
}
int main()
{
freopen("secv.in", "r", stdin);
freopen("secv.out", "w", stdout);
int i,j,d,n;
d = 0;
scanf("%d", &n);
for(i = 1;i <= n;i++){
scanf("%d", &sorted[i].x);
sorted[i].poz = i;
}
sort(sorted + 1,sorted + n + 1, comp);
sorted[0].x = -1;
for(i = 1;i <= n;i++){
if(sorted[i].x != sorted[i-1].x){
d++;
}
v[sorted[i].poz] = d;
}
int ans = 1e9;
int ax;
for(i = d;i <= n;i++){
if(v[i] == d){
ax = d;
for(j = i;j >= 1;j--){
if(v[j] == ax){
ax--;
}
if(ax == 0){
break;
}
}
if(ax == 0){
ans = min(ans, i-j+1);
}
}
}
if(ans == 1e9){
ans = -1;
}
printf("%d",ans);
return 0;
}