Cod sursa(job #2595135)

Utilizator mihai50000Mihai-Cristian Popescu mihai50000 Data 7 aprilie 2020 11:06:03
Problema Secv Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("secv.in");
ofstream fout("secv.out");

const int DIM = 5001;

int v[DIM];
int ans = 0;

main()
{
	int n;
	fin >> n;
	
	if(n == 0)
	{
		fout << 0;
		return 0;
	}
	
	ans = -1;
	
	vector <int> aux;
	
	for(int i = 1; i <= n; ++i)
	{
		fin >> v[i];
		aux.emplace_back(v[i]);
	}
	
	sort(aux.begin(), aux.end());
	aux.erase(unique(aux.begin(), aux.end()), aux.end());
	
	for(int i = 1; i <= n; ++i)
	{
		v[i] = lower_bound(aux.begin(), aux.end(), v[i]) - aux.begin() + 1;
	}
	
	int d = aux.size();
	
	for(int i = 1; i <= n; ++i)
		if(v[i] == 1)
		{
			int last = 1;
			int siz = 1;
			
			for(int j = i + 1; j <= n && last < d; ++j, ++siz)
				if(v[j] == last + 1)
				{
					++last;
				}
			
			if(last == d && (ans == -1 || ans > siz))
				ans = siz;
		}
	
	fout << ans << '\n';
}