Pagini recente » Cod sursa (job #2093632) | Cod sursa (job #1915787) | Cod sursa (job #738281) | Cod sursa (job #1824026) | Cod sursa (job #2518178)
#include <algorithm>
#include <iostream>
#include <fstream>
#include <vector>
#include <map>
#include <set>
std::ifstream f("secv.in");
std::ofstream g("secv.out");
typedef unsigned long long ull;
typedef long long ll;
typedef const int ci;
typedef std::pair<int,int>pi;
int gcd(int a,int b){
return (b == 0 ? a : gcd(b,a % b));
}
int n,sol{ 1 << 30 };
std::vector<int>v,w,dp;
int main(){
f >> n;
v.resize(n);
w.resize(n);
for(int i = 0;i < n;++i){
f >> v[i];
w[i] = v[i];
}
std::sort(w.begin(),w.end());
dp.emplace_back(w[0]);
for(int i = 1;i < n;++i)
if(w[i] != w[i - 1])
dp.emplace_back(w[i]);
int k = (int)dp.size();
for(int i = 0;i < n - k + 1;++i){
int pos{ 0 };
for(int j = i;j < n;++j){
if(v[j] == dp[pos])
pos++;
if(pos >= k){
if(j - i + 1 <= sol)
sol = j - i + 1;
}
}
}
g << (sol == 1 << 30 ? -1 : sol);
return 0;
}