Pagini recente » Cod sursa (job #1474059) | Cod sursa (job #2548791) | Cod sursa (job #346525) | Cod sursa (job #3276261) | Cod sursa (job #481024)
Cod sursa(job #481024)
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
#define maxn 5010
int N, nre, sol;
int A[maxn], E[maxn];
void unique() {
sort(E+1, E+N+1);
E[0] = -1;
for(int i=1; i<=N; i++) {
if(E[i] != E[i-1]) {
nre++;
E[nre] = E[i];
}
}
}
int verif(int pos) {
int start = pos, lst = 1;
while(pos <= N) {
if(A[pos] == E[lst]) {
lst++;
}
if(lst > nre) return pos-start+1;
pos++;
}
return maxn;
}
int main() {
FILE *f1=fopen("secv.in", "r"), *f2=fopen("secv.out", "w");
int i, j;
fscanf(f1, "%d\n", &N);
for(i=1; i<=N; i++) {
fscanf(f1, "%d", &A[i]);
E[i] = A[i];
}
unique();
sol = maxn;
for(i=1; i<=N; i++) {
//incep un nou subsir pe pozitia i
sol = min(sol, verif(i));
}
if(sol == maxn) sol = -1;
fprintf(f2, "%d\n", sol);
fclose(f1); fclose(f2);
return 0;
}