Cod sursa(job #72237)

Utilizator RobytzzaIonescu Robert Marius Robytzza Data 13 iulie 2007 01:13:54
Problema Secv Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include<fstream.h>
long a[5005],n,b[5005],c[5004],nr=1;
void citire(){
ifstream fin("secv.in");
fin>>n;
for (int i=0;i<n;i++){
  fin>>a[i];
c[i]=a[i];}
fin.close();
}
void bule (int p){
short ok=0;
while (ok==0){
ok=1;
p--;
for (int i=0;i<p;i++)
  if (c[i]>c[i+1]){
   long aux=c[i];
c[i]=c[i+1];
c[i+1]=aux;
ok=0;}}}
void form_sir(){
b[0]=c[0];
for (int i=1;i<n;i++)
   if (c[i]>b[nr-1])
       b[nr++]=c[i];
}
long minim(){
long min3=10000;
long t=0;
   for (int i=0;i<n-nr+1;i++){
	long u=0,j=i;
	while (j<n&&u<nr){
	   if (a[j]==b[u])
	      u++;
	      j++;}
	if (u==nr) {
	   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();
bule(n);
form_sir();
fout<<minim();
fout<<"\n";
fout.close();
return 0;
}