Cod sursa(job #23868)

Utilizator Spike7d5Spike7d5 Spike7d5 Data 1 martie 2007 15:35:31
Problema Secv Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.05 kb
#include <fstream>
#include <vector>
#include <algorithm>
#include <iostream>
#include <stdio.h>

#define MAX 10000

using namespace std;

std::vector<int> a;

int main()
{
	std::fstream fi;
	fi.open("secv.in");
	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;
				}
		}


	freopen("secv.out", "wt", stdout);
	if (min == MAX) 
		printf("-1\n");
	else
		printf("%d\n", min);
	

	return 0;
}