Cod sursa(job #558091)

Utilizator vlad.doruIon Vlad-Doru vlad.doru Data 17 martie 2011 08:27:27
Problema Secv Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <fstream>
#include <algorithm>

using namespace std;

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

int n,v[50005],rez[5005],maxim=0;
pair <int, int> aux[50005];

void citire(){
	int i,val=1,aux1,minim;
	in>>n;
	minim=10000000;
	for(i=1;i<=n;i++){
		in>>aux[i].first;
		aux[i].second=i;
	}
	sort( &aux[1], &aux[n+1]);
	v[aux[1].second]=val;
	aux1=aux[1].first;
	for(i=2;i<=n;i++){
		if(aux[i].first!=aux1){
			val++;
			v[aux[i].second]=val;
			aux1=aux[i].first;
			continue;
		}
		v[aux[i].second]=val;
	}
	maxim=val;
	for(i=1;i<=n;i++){
		if(v[i]==1){
			rez[1]=i;
			continue;
		}
		rez[v[i]]=rez[v[i]-1];
		if(v[i]==val){
			if(rez[v[i]]!=0 && i-rez[v[i]]+1<minim){
			minim=i-rez[v[i]]+1;
			}
		}
	}
	out<<minim;
}

int main(){
	citire();
	return 0;
}