Pagini recente » Cod sursa (job #1954435) | Cod sursa (job #2333717) | Cod sursa (job #1372606) | Cod sursa (job #2839530) | Cod sursa (job #136411)
Cod sursa(job #136411)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
long long v[5001];
long long v2[5001];
long long w[5001];
long long n,m,l;
int cmp(const void *a, const void *b)
{
long long x=*(long long*)a, y=*(long long*)b;
if (x>y)
return 1;
if (y>x)
return -1;
return 0;
}
int main()
{
FILE *in = fopen("secv.in","r");
FILE *out = fopen("secv.out","w");
long long i,j,k;
fscanf(in,"%lld",&n);
for (i=0; i<n; i++)
{
fscanf(in,"%lld",&v[i]);
v2[i]=v[i];
}
qsort(v2,n,sizeof(v2[0]),cmp);
l=n+1; m=1; w[0]=v2[0];
for (i=1; i<n; i++)
if (v2[i]!=v2[i-1])
w[m++]=v2[i];
for (i=0; i<n; i++)
{
j=i;k=0;
while (k<m && j<n)
{
if (v[j]==w[k])
{
k++; j++;
}
else
j++;
}
j--;
if (j-i+1<l && k==m)
l=j-i+1;
}
if (l<n+1)
fprintf(out,"%lld\n",l);
else
fprintf(out,"-1\n");
fclose(in);
fclose(out);
return 0;
}