Cod sursa(job #548148)

Utilizator S7012MYPetru Trimbitas S7012MY Data 7 martie 2011 09:33:42
Problema Secv Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#define x first
#define y second
#define DN 5005
using namespace  std;

typedef pair<int, int> PER;

PER s[DN];
int n,v[DN],p[DN];

int main()
{
	ifstream f("secv.in");
	ofstream g("secv.out");
	f>>n;
	for(int i=1; i<=n; ++i) {
		f>>s[i].x;
		s[i].y=i;
	}
	sort(s+1,s+n+1);
	v[s[1].y]=1;
	int val=1;
	for(int i=2; i<=n; ++i) {
		if(s[i].x!=s[i-1].x) ++val;
		v[s[i].y]=val;
	}
	int lg=9999;
	for (int i=1;i<=n;i++) {
		if (v[i]==1) p[v[i]]=i;
		else  p[v[i]]=p[v[i]-1];
		if (v[i]==val) {
			if (p[v[i]]!=0 && lg>=i-p[v[i]]+1) lg=i-p[v[i]]+1;	
		}
	}
	g<<lg;
	return 0;
}