Cod sursa(job #1482952)

Utilizator tiby10Tibi P tiby10 Data 8 septembrie 2015 13:30:19
Problema Secv Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include<bits/stdc++.h>
using namespace std;
ifstream fin("secv.in");
ofstream fout("secv.out");
#define MAXN 5005

int n, V[MAXN], vals[MAXN];
bitset<MAXN> used;

int main(){
    fin>>n;
    int i, j, dist, index, howMany=0, miN=(1<<30);
    if(n==1){
        fout<<"1";
        return 0;
    }
    for(i=1;i<=n;++i){
        fin>>V[i];
        if(!used[V[i]]){
            used[V[i]]=1;
            vals[++howMany]=V[i];
        }
    }
    sort(vals+1, vals+howMany+1);
    for(i=1;i<=n-howMany+1;++i)
        if(V[i]==vals[1]){
            index=2, dist=1;
            for(j=i+1;j<=n && index!=howMany+1;++j, ++dist)
                if(V[j]==vals[index])
                    ++index;
            if(index-1==howMany)
                miN=min(miN, dist);
        }
    miN==(1<<30)?fout<<"-1":fout<<miN;
    return 0;
}