Cod sursa(job #1738920)

Utilizator pas.andreiPopovici Andrei-Sorin pas.andrei Data 8 august 2016 02:22:20
Problema Secv Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <fstream>
#include <cstdio>
#include <iostream>
#include <vector>
#include <queue>
#include <cstring>
#include <set>
#define pb push_back
#define NMAX 5005
#define INF 0x3f3f3f3f

using namespace std;

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

set<int> gasit;
int v[NMAX],l[NMAX];

int main() {
	int n,i,j,res=INF;
	pair<int, int> p;

	fin>>n;
	for(i=1;i<=n;++i) {
		fin>>v[i];
		gasit.insert(v[i]);
	}

	for(i=1;i<=n;++i) {
		if(v[i]==*gasit.begin()) {
			set<int>::iterator it;

			for(it=++gasit.begin(),j=i+1;it!=gasit.end() && j<=n;++j) {
				if(v[j]==*it) ++it;
				if(it==gasit.end()) res = min(res,j-i+1);
			}
		}
	}

	if(n==1) fout<<1;
	else if(res!=INF) fout<<res;
	else fout<<-1;

	return 0;
}