Cod sursa(job #1706399)

Utilizator GabiTulbaGabi Tulba-Lecu GabiTulba Data 22 mai 2016 15:08:36
Problema Secv Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <cstdio>
#include <algorithm>
#define INF 2000000001
using namespace std;


int v[5005],sub[5005]={},N,l=1,Min=INF;
int main()
{
	freopen("secv.in","r",stdin);
	freopen("secv.out","w",stdout);

	scanf("%d",&N);
	scanf("%d",&v[1]);
	sub[1]=v[1];
	for(int i=2;i<=N;i++)
	{
		int j;
		scanf("%d",&v[i]);
		for(j=1;j<=l;j++)
		{
			if(v[i]==sub[j])
				break;
		}
		if(j==l+1)
		{
			sub[j]=v[i];
			l++;
		}
	}
	sub[0]=l;
	sort(sub+1,sub+sub[0]+1);
	int x=sub[0];
	for(int i=1;i<=N-l+1;i++)
	{
		int pos=1,dist=INF;
		for(int j=i;j<=N;j++)
		{
			if(v[j]==sub[pos])
			{
				pos++;
			}
			if(pos>l)
			{
				dist=j-i+1;
				break;
			}
		}
		if(Min>dist)
			Min=dist;
	}	
	if(Min==INF)
		printf("-1");
	else printf("%d",Min);
	return 0;
}