Pagini recente » Istoria paginii utilizator/hjkls21 | math_knird1 | Solutii preONI 2006, Runda finala | Cod sursa (job #2022804) | Cod sursa (job #1571256)
#include <cstdio>
#include <algorithm>
#include <set>
using namespace std;
int v[5000];
typedef set <int> :: iterator ind;
set <int> s;
struct SECV{
ind a;
int b;
};
SECV aux;
int main(){
freopen("secv.in","r",stdin);
freopen("secv.out","w",stdout);
int n,i,raspuns,m;
scanf("%d",&n);
for (i=0;i<n;i++){
scanf("%d",&v[i]);
s.insert(v[i]);
}
raspuns = 0;
m = s.size();
if (m == 1)
raspuns = 1;
for (i=0;i<n;i++){
if (v[i] == *s.begin()){
aux = { ++s.begin(),i + 1};
while (aux.a != s.end() && aux.b <= n){
if (v[aux.b] == *aux.a)
aux.a++;
if (aux.a == s.end() && aux.b - i + 1 > raspuns)
raspuns = aux.b - i + 1;
aux.b++;
}
}
}
printf("%d",(raspuns == 0) ? -1 : raspuns);
return 0;
}