Cod sursa(job #192144)

Utilizator Omega91Nicodei Eduard Omega91 Data 30 mai 2008 22:53:09
Problema Secv Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <cstdio>
#include <algorithm>
int main()
{
	unsigned int sir[5001] = {}, sir2[5001] = {}, cmp, unic[5001];
	unsigned short n, i, k = 1, j, q;
	short rasp = 5001;
	FILE *f1, *f2;
	f1 = fopen("secv.in", "r");
	f2 = fopen("secv.out", "w");
	fscanf(f1, "%hd", &n);
	for (i = 1; i <= n; ++i) {
		fscanf(f1, "%u ", &sir[i]);
		sir2[i] = sir[i];
	}
	std::sort(sir2 + 1, sir2 + n);

	cmp = sir2[1];
	unic[k++] = cmp;
	for (i = 2; i <= n; ++i)
		if (sir2[i] != cmp) {
			cmp = sir2[i];
			unic[k++] = cmp;
		}
	for (i = 1; i <= n; ++i) {
		q = 1;
		if (sir[i] == unic[q++]) {
			for (j = i + 1; j <= n; ++j)
				if (sir[j] == unic[q]) {
					if (q == k - 1) {
						rasp = rasp < j - i + 1 ? rasp : j - i + 1;
						break;
					}
					++q;
				}
		}
	}
	if (rasp == 5001) rasp = -1;
	fprintf(f2, "%d\n", rasp);
	fclose(f1);
	fclose(f2);
	return 0;
}