Cod sursa(job #324678)

Utilizator doru.nituNitu Doru Constantin doru.nitu Data 16 iunie 2009 19:13:43
Problema Secv Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.56 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("%d",&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];
  if(sor[n]!=sor[n-1]) sub[++k]=sor[n];
  
  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;
}