Pagini recente » Rating Draghici Denis Cosmin (DraghiciDenis) | Cod sursa (job #2616406) | Cod sursa (job #2837334) | Cod sursa (job #196204) | Cod sursa (job #2152493)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in ("secv.in");
ofstream out ("secv.out");
int const nmax = 5000;
int dp[5 + nmax];
int v[5 + nmax];
int main() {
int n;
in>>n;
int smin = 5 + nmax , smax = 0;
for(int i = 1 ; i <= n ;i++){
in>>v[i];
dp[i] = -1;
if(smax < v[i])
smax = v[i];
}
for(int i = 1 ; i <= n ;i++){
if(v[i] <= n){
if(v[i] == 1)
dp[v[i]] = i;
else{
if(0 < dp[v[i] - 1])
dp[v[i]] = dp[v[i] - 1];
else
dp[v[i]] = -1;
}
if(0 < dp[v[i]] && (i - dp[v[i]] + 1) < smin && v[i] == smax){
smin = (i - dp[v[i]] + 1);
}
}
}
if(smin == 5 + nmax)
out<<-1;
else
out<<smin;
return 0;
}