Cod sursa(job #1847563)

Utilizator PondorastiAlex Turcanu Pondorasti Data 14 ianuarie 2017 18:49:57
Problema Secv Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <cstdio>
#include <algorithm>
using namespace std;
struct test {
	int nr,poz;
}a[5005];
int v[5005],lmin=2000000000;
bool Comp(test a, test b) {
	return a.nr<b.nr;}
int main() {
	freopen("secv.in","r",stdin);
	freopen("secv.out","w",stdout);
	int n,i,j;
    scanf("%d",&n);
    for(int i=1;i<=n;i++) {
		scanf("%d",&a[i].nr);
		a[i].poz=i;}
	sort(a+1,a+1+n,Comp);
	int k=0;
	a[0].nr=-1;
	for(int i=1;i<=n;i++) {
		if(a[i-1].nr!=a[i].nr)
			k++;
		v[i]=k;}
	for(i=1;i<=n;i++) {
		if(v[i]==1) {
			int po=2;
			for(j=i+1;j<=n && po<=k;j++) {
				if(v[j]==po)
					po++;}
			if(po>k) {
				lmin=min(lmin,j-i);}}}
    if(lmin==2000000000)
		lmin=-1;
	printf("%d",lmin);
    return 0;
}