Pagini recente » Cod sursa (job #2592479) | Cod sursa (job #2065551) | Cod sursa (job #2170817) | Cod sursa (job #2342949) | Cod sursa (job #2442543)
#include <iostream>
#include <fstream>
#include <algorithm>
std::ifstream f("secv.in");
std::ofstream g("secv.out");
const int NMAX = 5'005;
int v[NMAX],n,w[NMAX],dp[NMAX],sol{1 << 30};
int main(){
f >> n;
for(int i = 1;i <= n;i++){
f >> v[i];
w[i] = v[i];
}
std::sort(w + 1,w + n + 1);
dp[1] = w[1];
int k{ 1 };
for (int i = 2;i <= n;i++)
if(w[i] != w[i - 1])
dp[++k] = w[i];
bool ok{false};
for(int i = 1;i <= n - k + 1;i++){
int pos{ 1 };
for(int j = i;j <= n;j++){
if(v[j] == dp[pos])
pos++;
if(pos > k){
ok = true;
sol = std::min(sol,j - i + 1);
}
}
}
if(ok)
g << sol;
else g << -1;
f.close();
g.close();
return 0;
}