Cod sursa(job #2923432)

Utilizator bent_larsenSturzu Antonio-Gabriel bent_larsen Data 13 septembrie 2022 18:27:11
Problema Secv Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <bits/stdc++.h>
using namespace std;

int solve(const vector<int>& v)
{
	int n = v.size(), left = 0;
	vector<int> tmp = v;
	
	sort(tmp.begin(), tmp.end());
	int index = 0;
	for(int i = 1;i < tmp.size();++i)
	{
		if(tmp[i] > tmp[i - 1])
			tmp[++index] = tmp[i];
	}
	tmp.resize(index + 1);
	int ans = n + 1;
	for(int i = 0;i < n;++i)
	{
		int index = 0, j;
		for(j = i;j < n && index < tmp.size();++j)
		{
			if(v[j] == tmp[index])
				++index;
		}
		if(index == tmp.size())
			ans = min(ans, j - i);
	}
	if(ans == n + 1)
		return -1;
	return ans;
}


int main() {
	int n;
	
	freopen("secv.in", "r", stdin);
	freopen("secv.out", "w", stdout);
	cin >> n;
	vector<int> v(n);
	for(int i = 0;i < n;++i)
		cin >> v[i];
	cout << solve(v);
}