Pagini recente » Cod sursa (job #732807) | Cod sursa (job #1508074) | Cod sursa (job #1124986) | Monitorul de evaluare | Cod sursa (job #761167)
Cod sursa(job #761167)
#include <cstdio>
#include <cstdlib>
#include <algorithm>
using namespace std;
int v[5010], c[5010], n, index, sol;
int main()
{
freopen("secv.in", "r", stdin);
freopen("secv.out", "w", stdout);
int i, j, m = 0;
sol = (1 << 16);
scanf("%i", &n);
for(i = 1; i <= n; i++)
{
scanf("%i", &v[i]);
c[i] = v[i];
}
sort(c + 1, c + n + 1);
c[0] = -1;
for(i = 1; i <= n; i++)
if(c[i] != c[i - 1])
c[++m] = c[i];
for(i = 1; i <= n - m + 1; i++)
{
index = i;
for(j = 1; j <= m && index <= n;)
{
while((v[index] != c[j]) && (index <= n)) index ++;
while((v[index] == c[j]) && (index <= n) && (j <= m)) j ++, index ++;
}
if((j == m + 1) && (index - i < sol)) sol = index - i;
}
if(sol == (1 << 16)) printf("-1\n");
else printf("%i\n", sol);
scanf("%i", &i);
return 0;
}