Cod sursa(job #93765)

Utilizator blasterzMircea Dima blasterz Data 20 octombrie 2007 09:18:07
Problema Secv Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
using namespace std;
#include <cstdio>
#include <set>
#define un unsigned
un int a[5001], n;
un int x[5001], nx;

void read()
{
  freopen("secv.in","r",stdin);
  scanf("%d\n", &n);
  for(un int i=1;i<=n;++i) scanf("%d ", a+i);
  set<un int>Q;
  for(un int i=1;i<=n;++i) Q.insert(a[i]);
  for(set<un int>::iterator it=Q.begin();it!=Q.end();++it) x[++nx]=*it;
}

void solve()
{
  un int i, j, nmin=0x3f3f3f3f;
  un int p;

  for(i=1;i<=n;++i)
    if(a[i]==x[1])
      {
	p=2;
	for(j=i+1;j<=n;++j)
	  if(a[j]==x[p])
	    {
	      ++p;
	      if(p>nx) break;
	    }
	if(nmin>j-i && p==nx+1){nmin=j-i;}
      }
  freopen("secv.out","w",stdout);
  if(nmin==0x3f3f3f3f) nmin=-1;
  printf("%d\n", nmin+1);

}

int main()
{
  read();
  solve();
  return 0;
}