Cod sursa(job #136380)

Utilizator znakeuJurba Andrei znakeu Data 15 februarie 2008 15:14:33
Problema Secv Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

long long v[5001];
long long v2[5001];
long long w[5001];
long long n,m,l;

int cmp(const void *a, const void *b)
{
	long long x=*(long long*)a, y=*(long long*)b;
	if (x>y)
		return 1;
	if (y>x)
		return -1;
	return 0;
}

int main()
{
	FILE *in  = fopen("secv.in","r");
	FILE *out = fopen("secv.out","w");
	
	int i,j,k;
	
	fscanf(in,"%lld",&n);
	for (i=0; i<n; i++)
	{
		fscanf(in,"%lld",&v[i]);
		v2[i]=v[i];
	}
	
	qsort(v2,n,sizeof(v2[0]),cmp);
	l=n;
	m=1;
	w[0]=v2[0];
	for (i=1; i<n; i++)
		if (v2[i]!=v2[i-1])
			w[m++]=v2[i];
	for (i=0; i<n-m+1; i++)
	{
		j=i;k=0;
		while (k<m && j<n)
		{
			if (v[j]==w[k])
			{
				k++; j++;
			}
			else
				j++;
		}
		if (j-i+1<l)
			l=j-1;
	}
	
	fprintf(out,"%lld",l);
	
	fclose(in);
	fclose(out);
	return 0;
}