Pagini recente » Cod sursa (job #1178069) | Cod sursa (job #1087069) | Cod sursa (job #2260084) | Cod sursa (job #2430714) | Cod sursa (job #1737578)
#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;
}