Cod sursa(job #1707371)

Utilizator PopoviciRobertPopovici Robert PopoviciRobert Data 24 mai 2016 22:01:17
Problema Secv Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <cstdio>
#include <algorithm>
using namespace std;
#define MAXN 5001
int v[MAXN+1],v1[MAXN+1];
int main(){
   FILE*fi,*fout;
   int i,n,maxv,minim,j,m,poz;
   fi=fopen("secv.in" ,"r");
   fout=fopen("secv.out" ,"w");
   fscanf(fi,"%d" ,&n);
   maxv=m=1;
   for(i=1;i<=n;i++){
       fscanf(fi,"%d" ,&v[i]);
       if(v[i]>maxv)
          maxv=v[i];
       j=m-1;
       while(j>0&&v1[j]!=v[i])
          j--;
       if(j==0)
          v1[m++]=v[i];
   }
   sort(v1,v1+m);
   minim=MAXN;
   for(i=1;i<=n;i++)
       if(v[i]==maxv){
          j=m-1;
          poz=i;
          while(poz>0&&j>0){
              if(v1[j]==v[poz])
                 j--;
               poz--;
          }
          if(j==0&&minim>i-poz)
               minim=i-poz;
       }
   if(minim==MAXN)
      minim=-1;
   fprintf(fout,"%d" ,minim);
   fclose(fi);
   fclose(fout);
   return 0;
}