Cod sursa(job #72219)

Utilizator RobytzzaIonescu Robert Marius Robytzza Data 13 iulie 2007 00:24:31
Problema Secv Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.03 kb
#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++;}
	      t=j;
	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;
}