Pagini recente » Cod sursa (job #2175062) | Cod sursa (job #588925) | Cod sursa (job #3158257) | Cod sursa (job #3267835) | Cod sursa (job #2771968)
#include <fstream>
#include <cmath>
#include <vector>
#include <algorithm>
#include <map>
#include <string>
#include <bitset>
#define pb(a) push_back(a)
using namespace std;
ifstream cin("secv.in");
ofstream cout("secv.out");
const int nmax = 5e3;
int v[2 * nmax], aux[2 * nmax + 1];
vector <pair <int, int> > f;
int n, p = 1;
int main(){
cin >> n;
for(int i = 1; i <= n; ++i){
cin >> v[i];
aux[i] = v[i];
}
sort(aux + 1, aux + n + 1);
int cnt = 1;
for(int i = 1; i <= n; ++i){
if(aux[i] == aux[i + 1]){
cnt++;
}
else{
f.pb(make_pair(aux[i], cnt));
cnt = 1;
}
}
int st = 0;
for(int i = 1; i <= n; ++i){
f[v[i] - 1].second--;
if(v[i] == f[0].first && f[1].second){
st = i;
}
else if(v[i] == f[0].first && !f[1].second){
break;
}
}
int dr = 0, k = 1;
for(int i = st + 1; i <= n; ++i){
if(v[i] == f[k].first){
if(k == f.size() - 1){
dr = i;
k = 1;
break;
}
k++;
}
}
if(dr == 0){
cout << -1;
}
else{
cout << dr - st + 1;
}
return 0;
}