Cod sursa(job #884948)

Utilizator Detrol2kGuianu Leon Detrol2k Data 21 februarie 2013 15:07:50
Problema Pascal Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <fstream>
#include <algorithm>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <iostream>
#include <string.h>
#include <vector>
using namespace std;

int main()
{
	ifstream fin("secv.in");
	ofstream fout("secv.out");
	
	int n, i, j, k, v[5001], s[5001], aux[5001], min = 5001, aux_size;

	
	//Read
	fin>>n;
	for(i=1; i<=n; i++)
	{
		fin>>v[i];
		s[i] = v[i];
	}
	

	//Compute
	sort(s+1,s+n+1);
	aux[1] = s[1];
	aux_size = 1;
	for(i=2; i<=n; i++)
		if(s[i] != s[i-1])
			aux[++aux_size] = s[i];
	for(i=1; i<=n; i++)
		if(v[i] == aux[1])
		{
			k = 0;	
			for(j=i; j<=n; j++)
			{
				if(v[j] == aux[k+1])
					k++;
				if(k == aux_size)
					if(j-i+1 <= min)
						min = j-i+1;
			}
				
		}
		
	

	//Print
	if(min == 5001)
		fout<<-1;
	else
		fout<<min;
}