Pagini recente » Cod sursa (job #582401) | Cod sursa (job #2671075) | Cod sursa (job #459) | Cod sursa (job #900953) | Cod sursa (job #72211)
Cod sursa(job #72211)
#include<fstream.h>
long a[5005],n,b[5005],min,max;
void citire(){
ifstream fin("secv.in");
fin>>n;
for (int i=0;i<n;i++)
fin>>a[i];
fin.close();
}
long mini(){
long min=20000001;
for (int i=0;i<n;i++)
if (a[i]<min)
min=a[i];
return min;
}
long maxi(){
long max=0;
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++;
}
long minim(){
long min3=100000;
long 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==100000)
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;
}