Pagini recente » Cod sursa (job #3249320) | Cod sursa (job #205254) | Cod sursa (job #188638) | Cod sursa (job #53638) | Cod sursa (job #1738920)
#include <fstream>
#include <cstdio>
#include <iostream>
#include <vector>
#include <queue>
#include <cstring>
#include <set>
#define pb push_back
#define NMAX 5005
#define INF 0x3f3f3f3f
using namespace std;
ifstream fin("secv.in");
ofstream fout("secv.out");
set<int> gasit;
int v[NMAX],l[NMAX];
int main() {
int n,i,j,res=INF;
pair<int, int> p;
fin>>n;
for(i=1;i<=n;++i) {
fin>>v[i];
gasit.insert(v[i]);
}
for(i=1;i<=n;++i) {
if(v[i]==*gasit.begin()) {
set<int>::iterator it;
for(it=++gasit.begin(),j=i+1;it!=gasit.end() && j<=n;++j) {
if(v[j]==*it) ++it;
if(it==gasit.end()) res = min(res,j-i+1);
}
}
}
if(n==1) fout<<1;
else if(res!=INF) fout<<res;
else fout<<-1;
return 0;
}