Cod sursa(job #1852102)

Utilizator catrinescualexcatrinescualex catrinescualex Data 20 ianuarie 2017 15:59:25
Problema Secv Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <cstdio>
#include <algorithm>

using namespace std;
int v[5005],a[5005],b[5005];
int main(){
	freopen("secv.in","r",stdin);
	freopen("secv.out","w",stdout);
    int n,i,j,min1=5005,k,c;
	scanf("%d",&n);
	for(i=1;i<=n;i++){
		scanf("%d",&v[i]);
		a[i]=v[i];
	}
	sort(a+1,a+n+1);
	j=1;a[n+1]=-1;
	for(i=1;i<=n;i++)
		if(a[i]!=a[i+1]){
			b[j]=a[i];
			j++;
		}
	for(i=1;i<=n;i++){
		for(k=1;k<j;k++)
			if(v[i]==b[k])
				a[i]=k;
	}
	for(i=1;i<=n;i++){
		if(a[i]==1){
			k=2;
			for(c=i+1;c<=n;c++)
				if(a[c]==k)
					k++;
			if(k==j)
				if(min1>c-i)
					min1=c-i;
		}
	}
	if(min1==5005)
		printf("-1");
	else
		printf("%d",min1);
    return 0;
}