Cod sursa(job #1605770)

Utilizator kassay_akosKassay Akos kassay_akos Data 19 februarie 2016 14:52:32
Problema Tribute Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <iostream>
#include <fstream>
#include <string.h>
#include <algorithm>

using namespace std;
const int nmax = 5002;
int v[nmax], a[nmax], b[nmax];
int n;

int main(){
	freopen("secv.in", "r", stdin);
	freopen("secv.out", "w", stdout);
	scanf("%d", &n);
	for (int i = 0; i < n; i++)
		scanf("%d", &v[i]);

	memcpy(a, v, 4*(n + 1));
	memset(b, 0, sizeof(b));

	sort(a, a+n);

	int ind_b = 0;
	b[0] = a[0];
	for (int i = 1; i < n; i++)
		if (b[ind_b] < a[i])
			b[++ind_b] = a[i];

	int minlenght = 10000;
	for (int s = 0; s < n - ind_b; s++){
		if (v[s] == b[0]){
			int next = 1;
			for (int i = s + 1; i < n; i++) {
				if (v[i] == b[next])
					next++;
				if (next > ind_b && i-s+1 < minlenght)
					minlenght = i-s+1;
			}
		}
	}

	if (minlenght != 10000)
		printf("%d ", minlenght);
	else printf("%d ", -1);

	fclose(stdin);
	fclose(stdout);
	return 0;
}