Cod sursa(job #1548989)

Utilizator theodor.moroianuTheodor Moroianu theodor.moroianu Data 11 decembrie 2015 19:06:49
Problema Secv Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <fstream>
#include <set>
using namespace std;

const int NMAX = 5000;
set <int> s;
int v[NMAX];
int nr[NMAX];
int n, i, j, k, l, m, o;
int minim = 10000;

int f(int x);

int main() {
	ifstream in("secv.in");
	in >> n;
	for (i = 0; i < n; i++) {
		in >> nr[i];
		s.insert(nr[i]);
	}
	k = 0;
	for (auto i : s) {
		v[k++] = i;
	}

	for (i = 0; i < n; i++) {
		if (nr[i] == v[0]) {
			o = f(i);
			if (o < minim)
				minim = o;
		}
	}
	in.close();
	ofstream out("secv.out");
	if (minim == 10000)
		out << -1;
	else
		out << minim;
	out.close();
	return 0;
}



int f(int x) {
	l = 0;
	for (m = x; m < n; m++) {
		if (nr[m] == v[l])
			l++;
		if (l == k)
			return m - x + 1;
	}
	return 10000000;
}