Cod sursa(job #469837)

Utilizator darrenRares Buhai darren Data 9 iulie 2010 11:25:45
Problema Secv Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include<fstream>
#include<algorithm>
#include<vector>
using namespace std;

vector<int> v;
int n, a[5001], mn = 1 << 30;
int main()
{
	ifstream fin("secv.in");
	ofstream fout("secv.out");
	fin >> n;
	for (int i = 1; i <= n; ++i)
	{
		fin >> a[i];
		v.push_back(a[i]);
	}
	sort(v.begin(), v.end());
	vector<int>::iterator it = unique(v.begin(), v.end());
	v.resize(it - v.begin());
	
	bool ok;
	for (int i = 1; i <= n; ++i)
		if (a[i] == v[0])
		{
			int next = 0, pos = i;
			ok = true;
			
			while (next + 1 < v.size())
			{
				++next, ++pos;
				while (a[pos] != v[next] && pos <= n) ++pos;
				if (pos > n) 
				{
					ok = false;
					break;
				}
			}
			
			if (ok && pos - i + 1 < mn)
				mn = pos - i + 1;
		}
	
	fout << mn;
}