Cod sursa(job #23861)

Utilizator Spike7d5Spike7d5 Spike7d5 Data 1 martie 2007 15:31:00
Problema Secv Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.03 kb
#include <fstream>
#include <vector>
#include <algorithm>
#include <iostream>

#define MAX 10000

using namespace std;

std::vector<int> a;

int main()
{
	std::fstream fi;
	fi.open("secv.in");
	std::fstream fo;
	fo.open("secv.out");
	int n;
	fi >> n;                           
	for (int i = 0; i < n; i++) {
		int x;
		fi >> x;
		a.push_back(x);
	}
	std::vector<int> b(a);
	std::sort(a.begin(), a.end());

	vector<int>::iterator new_end= unique(a.begin(), a.end());
	a.erase(new_end, a.end());

	//for (int i = 0; i < a.size(); i++)
	//	std::cout << a[i] << " ";
	//std::cout << std::endl;
	//for (int i = 0; i < b.size(); i++)
	//	std::cout << b[i] << " ";

	int min = MAX;
	for (int i = 0; i < b.size(); i++)
		if (b[i] == a[0])
		{
			int k = 1;
			int j;
			for (j = i+1; j < b.size() && k < a.size(); j++)
				if (b[j] == a[k])
					k++;
			if (k == a.size())
				if (j - i < min) 
				{
					min = j - i;
				}
		}

	if (min == MAX) 
		fo << -1 << endl;
	else
		fo << min << endl;

	return 0;
}