Pagini recente » Cod sursa (job #3276710) | Cod sursa (job #2342596) | Cod sursa (job #894827) | Cod sursa (job #1677998) | Cod sursa (job #72239)
Cod sursa(job #72239)
//---------------------------------------------------------------------------
#include <values.h>
#include <stdio.h>
#include <stdlib.h>
int n,b[5000], a[5000], nc, lmin;
int uz ( int val )
{
for (int i = 0; i< nc; i++)
if (b[i] == val)
return 1;
return 0;
}
void citire()
{
freopen("secv.in","r",stdin);
scanf("%d\n", &n);
for (int i = 0 ; i< n; i++)
{
scanf("%d", &a[i]);
if (!uz(a[i]))
b[nc++] = a[i];
}
fclose(stdin);
}
int comp(const void *a, const void *b)
{
if( (*(int *)a) > (*(int*)b)) return 1;
return -1;
}
void calc()
{
int j,k;
lmin = MAXINT;
for (int i =0 ; i<n; i++)
if (a[i] == b[0] )
{
for ( j=i+1, k=1; j< n && k < nc; j++)
if (a[j] ==b[k])
k++;
if (k==nc && j-i < lmin) lmin = j-i;
}
if ( n==0) lmin=0;
if (lmin == MAXINT) lmin = -1;
}
int main()
{
citire();
qsort(b,nc, sizeof(int), comp);
calc();
freopen("secv.out", "w", stdout);
printf("%d", lmin);
fclose(stdout);
return 0;
}