Cod sursa(job #587508)

Utilizator Smaug-Andrei C. Smaug- Data 4 mai 2011 23:57:23
Problema Secv Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <cstdio>
#include <cstdlib>
#include <string>

#define INF 10000

int cmp(const void *a, const void *b){
  return (*(int*)a-*(int*)b);
}

int main(){

  freopen("secv.in", "r", stdin);
  freopen("secv.out", "w", stdout);

  int N, S[5010], T[5010], i, j, k, aux, min;

  scanf("%d", &N);
  for(i=0; i<N; i++)
    scanf("%d", S+i);

  memcpy(T, S, sizeof(S));
  qsort(T, N, sizeof(int), cmp);

  j=0;
  for(i=0; i<N; i++)
    if(T[i]!=T[j])
      T[++j]=T[i];
  
  min=INF;
  for(i=0; i<N; i++){
    aux=0;
    for(k=i; k<N; k++){
      if(T[aux]==S[k])
	aux++;
      if(aux>j){
	min=(k-i+1<min)? k-i+1: min;
	break;
      }
    }
  }

  printf("%d\n", (min==INF)? -1: min);

  return 0;

}