Cod sursa(job #1121618)

Utilizator TarabanDragosTaraban Dragos-Petru TarabanDragos Data 25 februarie 2014 13:25:23
Problema Secv Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include<cstdio>
#include<algorithm>
using namespace std;
int n,v[50100],x[50100],a[50100],p,pmax,i,j,nr,ok;
FILE *f,*g;
int main(){
    f=fopen("secv.in","r");
    g=fopen("secv.out","w");
    fscanf(f,"%d",&n);
    for(i=1;i<=n;i++){
        fscanf(f,"%d",&v[i]);
        x[i]=v[i];
    }
    sort(x+1,x+n+1);
    for(i=1;i<=n;i++){
        a[++nr]=x[i];
        i++;
        while(x[i]==x[i-1]){
            i++;
        }
    }
    pmax=2000000000;
    for(i=1;i<=n;i++){
        if(v[i]==a[1]){
            ok=1;
            p=i;
            for(j=1;j<=nr;j++){
                while(v[p]!=a[j]&&p<=n){
                    p++;
                }
                if(p>n){
                    ok=0;
                    break;
                }
            }
            if(p-i+1<pmax&&ok==1)
                pmax=p-i+1;
        }
    }
    if(pmax==2000000000)
        fprintf(g,"-1");
    else
        fprintf(g,"%d",pmax);




    fclose(f);
    fclose(g);
    return 0;
}