Pagini recente » Cod sursa (job #445761) | Cod sursa (job #2739752) | Cod sursa (job #193275) | Cod sursa (job #2264002) | Cod sursa (job #1478180)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("secv.in");
ofstream fout("secv.out");
const int NMax = 5005;
const int INF = 1e9;
int a[NMax], b[NMax], v[NMax];
int main(){
int n, k = 0;
fin >> n;
for(int i = 1; i <= n; i++){
fin >> a[i];
b[i] = a[i];
}
sort(b + 1, b + n + 1);
v[++k] = b[1];
for(int i = 2; i <= n; i++){
if(b[i] != v[k]){
v[++k] = b[i];
}
}
int c, ans = INF, j;
for(int i = 1; i <= n - k + 1; i++){
if(a[i] == v[1]){
c = 2;
for(j = i + 1; j <= n && c <= k; j++){
if(a[j] == v[c]){
c++;
}
}
if(c > k){
ans = min(ans, j - i);
}
}
}
if(ans == INF){
fout << -1;
} else {
fout << ans;
}
return 0;
}