Pagini recente » Cod sursa (job #2852954) | Cod sursa (job #907747) | Cod sursa (job #1825494) | Cod sursa (job #434819) | Cod sursa (job #69403)
Cod sursa(job #69403)
#include<fstream.h>
long a[5001],n,b[5001],min,max;
void citire(){
ifstream fin("secv.in");
fin>>n;
for (int i=0;i<n;i++)
fin>>a[i];
fin.close();
}
int mini(){
long min=20000001;
for (int i=0;i<n;i++)
if (a[i]<min)
min=a[i];
return min;
}
int maxi(){
long max=-20000000;
for (int i=0;i<n;i++)
if (a[i]>max)
max=a[i];
return max;
}
void form_sir(){
long min1=min;
for (int i=0;i<=max-min;i++)
b[i]=min1++;
}
int minim(){
int min3=10000;
int t=0;
for (int i=0;i<=n-(max-min);i++){
int u=0,j=i;
while (j<n&&u<=max-min){
if (a[j]==b[u])
u++;
j++;}
if (u==max-min+1) {
for (int u=i;u<n;u++)
if (a[u]==b[0]) {
t=u;
break;
}
if (min3>j-t)
min3=j-t;} }
if (min3==10000)
return -1;
return min3;
}
int main(){
ofstream fout("secv.out");
citire();
min=mini();
max=maxi();
form_sir();
fout<<minim();
fout<<"\n";
fout.close();
return 0;
}