Cod sursa(job #300751)

Utilizator ssergiussSergiu-Ioan Ungur ssergiuss Data 7 aprilie 2009 17:36:12
Problema Secv Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include<algorithm>
using namespace std;

#define DIM 5001
#define INF 2000000001

int a[DIM],sub[DIM];

void cpy(int a[DIM],int b[DIM]){
    int i;

	for(i=1; i<=b[0]; ++i)
		a[i]=b[i];}

void solve(){
    int i,j,k,min0;

    scanf("%d",&a[0]);
    for(i=1; i<=a[0]; ++i)
        scanf("%d",&a[i]);
	cpy(sub,a);
	sort(sub+1,sub+a[0]+1);
    for(i=1; i<=a[0]; ++i){
        sub[++sub[0]]=sub[i];
        for(; sub[i+1]==sub[i]&&i<a[0]; ++i);}
	for(i=1,min0=INF; i<=a[0]; ++i){
		for(; a[i]!=sub[1]&&i<=a[0]; ++i);
		for(j=i,k=1; k<=sub[0]&&j<=a[0]; ++j)
            if(a[j]==sub[k])
                ++k;
		if(k==sub[0]+1&&j-i+1<min0)
            min0=j-i+1;}
	if(min0==INF)
		printf("-1");
	else
		printf("%d",min0);}
int main(){

    freopen("secv.in","r",stdin);
    freopen("secv.out","w",stdout);

    solve();
    return 0;}