Cod sursa(job #1444878)

Utilizator tamionvTamio Vesa Nakajima tamionv Data 30 mai 2015 10:30:32
Problema Secv Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <fstream>
#include <limits>
#include <vector>
#include <algorithm>
using namespace std;

void citeste_date(vector<int>& v, vector<int>& el){
	ifstream f("secv.in");
	int n = 0;
	f >> n;
	v.resize(n);
	for(auto& x : v){
		f >> x; }
	el = v;
	sort(begin(el), end(el));
	el.erase(unique(begin(el), end(el)), end(el)); }

int main(){
	ofstream g("secv.out");
	vector<int> v, el;
	citeste_date(v, el);
	vector<int> inceputuri(el.size(), -v.size());
	int rez = v.size()+1;
	for(int i = 0; i < v.size(); ++i){
		const int al_catelea = distance(begin(el), lower_bound(begin(el), end(el), v[i]));
		if(al_catelea == 0){
			inceputuri[0] = i; }
		else{
			inceputuri[al_catelea] = max(inceputuri[al_catelea], inceputuri[al_catelea-1]); }
		if(al_catelea == el.size()-1){
			rez = min(rez, i-inceputuri[al_catelea]+1); } }
	g << (rez < v.size() ? rez : -1) << '\n';
	return 0; }