Cod sursa(job #1737578)

Utilizator valentin50517Vozian Valentin valentin50517 Data 4 august 2016 14:15:05
Problema Secv Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.54 kb
#include <bits/stdc++.h>
using namespace std;
set<int> S;
map<int,int> P,B;
int N,A[1<<13],maxi,rs=INT_MAX;

int main(){
	ifstream cin("secv.in");
	ofstream cout("secv.out");
	
	cin >> N;
	for(int i = 1;i<=N;i++){ cin >> A[i]; S.insert(A[i]);}
	int pr = -1;
	for(auto it : S){
		P[it] = pr;
		pr = it;
		maxi=it;
	}
	
	for(int i = 1;i<=N;i++){
		if(P[A[i]] == -1) B[A[i]] = i;
		else if(P[A[i]]>=0 && B[A[i]] != B[P[A[i]]]) B[A[i]] = B[P[A[i]]];
		if(A[i] == maxi && B[A[i]]) rs = min(rs,i - B[A[i]]+1);
 	}	
	cout << (rs==INT_MAX ? -1 : rs);
 	return 0;
}