Cod sursa(job #69610)

Utilizator RobytzzaIonescu Robert Marius Robytzza Data 3 iulie 2007 17:22:38
Problema Secv Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include<fstream.h>
long a[50001],n,b[50001],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++;
}
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;
}