Cod sursa(job #324681)

Utilizator doru.nituNitu Doru Constantin doru.nitu Data 16 iunie 2009 19:29:22
Problema Secv Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.53 kb
#include<stdio.h>
#include<algorithm>
using namespace std;

int i,j,n,k,nr, mini=10000,minj,poz;
long long a[5001],sor[5001],sub[5001];
int main()
{ freopen("secv.in","r",stdin);
  freopen("secv.out","w",stdout);
  
  scanf("%d",&n);
  for(i=1;i<=n;i++) { scanf("%lld",&a[i]);
                      sor[i]=a[i];
                    }
  sort(sor+1,sor+n+1);
  
  for(i=1;i<=n;i++) if(sor[i]!=sor[i-1]) sub[++k]=sor[i];
  
  
  for(i=1;i<=n;i++) { nr=0;
                     if(a[i]==sub[1]) { 
                                        for(j=i,poz=0;j<=n&&nr<k;j++) 
                                                { poz++;
                                                 if(a[j]==sub[nr+1]) nr++; 
                                                } 
                                        if(nr<k&&mini==10000) { printf("-1\n");
                                                                fclose(stdin);
                                                                fclose(stdout);
                                                                return 0;
                                                               } 
                                        else if(poz<mini&&nr>=k){ mini=poz;
                                                                }  
                                       }  
                    }
 printf("%d\n",mini);
 fclose(stdin);
 fclose(stdout);
 return 0;
}