Cod sursa(job #1850613)

Utilizator vladcainamisirVlad Cainamisir vladcainamisir Data 18 ianuarie 2017 19:47:39
Problema Secv Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.2 kb
#include<cstdio>
#include<algorithm>
using namespace std;
struct numar {
int a;
int poz;
};
bool cmp(numar b,numar c)
{
    if(b.a<c.a)
        return 1;
    else
        return 0;
}

numar v[5005];
int b[5005];
int main(){
    int n,i,k,min=100000,j,ult;
    freopen("secv.in","r",stdin);
    freopen("secv.out","w",stdout);
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        scanf("%d",&v[i].a);
        b[i]=v[i].a;
        v[i].poz=i;
    }
    sort(v+1,v+n+1,cmp);
    i=1;
    k=1;
    while(i<=n){
            if(v[i].a!=v[i-1].a&&i>1)
            k++;
            b[v[i].poz]=k;
            i++;
    }
    for(i=1;i<=n;i++)
    {
        if(b[i]==1)
                {
                    j=2;
                    ult=i+1;
                    while(j<=k&&ult<=n){
                        if(b[ult]==j)
                        j++;
                        ult++;
                    }
                    if(j==k+1)
                    {
                        if(ult-i<min)
                            min=ult-i;
                    }
                    else
                    break;
                }
    }
    printf("%d",min);
    return 0;

}