Pagini recente » Cod sursa (job #1169719) | Cod sursa (job #1194974) | Cod sursa (job #527344) | Cod sursa (job #2155696) | Cod sursa (job #72224)
Cod sursa(job #72224)
#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();
}
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=-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++;
}
long minim(){
long min3=10000;
long t=0;
for (int i=0;i<n-(max-min);i++){
long u=1,j=i;
while (a[j]!=b[0]&&j<n){
j++;}
t=j-1;
while (j<n&&u<=max-min){
if (a[j]==b[u])
u++;
j++;}
if (u==max-min+1) {
// for (int qqq=i;qqq<n;qqq++)
// if (a[qqq]==b[0]) {
// t=qqq;
// 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;
}