Cod sursa(job #548204)

Utilizator mihai995mihai995 mihai995 Data 7 martie 2011 10:20:39
Problema Secv Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <fstream>
using namespace std;

struct laba{int x,y;} a[1<<13];
int v[1<<13],poz[1<<13],n,m,rasp=1<<30;

ifstream in("secv.in");
ofstream out("secv.out");

inline bool cmp(laba a,laba b)
{
	return a.x<b.x;
}

int main()
{
	int i;
	in>>n;
	for (i=1;i<=n;i++)
	{
		in>>a[i].x;
		a[i].y=i;
	}
	sort(a+1,a+n+1,cmp);
	for (i=1;i<=n;i++)
	{
		m+=(a[i].x!=a[i-1].x);
		v[a[i].y]=m;
	}
	for (i=1;i<=n;i++)
	{
		if (v[i]==1)
			poz[1]=i;
		else
			poz[v[i]]=poz[v[i]-1];
		if (v[m] && v[i]==m && rasp>i-poz[m]+1)
			rasp=i-poz[m]+1;
	}
	if (rasp==1<<30)
		rasp=-1;
	out<<rasp<<"\n";		
	return 0;
}