Cod sursa(job #1482936)

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

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

int main(){
    fin>>n;
    int i, j, index, dist, howMany, miN=(1<<30);
    if(n==1){
        fout<<"1";
        return 0;
    }
    vals.push_back(0);
    for(i=1;i<=n;++i){
        fin>>V[i];
        if(!used[V[i]]){
            used[V[i]]=1;
            vals.push_back(V[i]);
        }
    }
    howMany=vals.size()-1;
    sort(vals.begin(),vals.end());
    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==howMany+1)
                miN=min(miN, dist);
        }
    miN==(1<<30)?fout<<"-1":fout<<miN;
    return 0;
}