Cod sursa(job #1482928)

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

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

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