Cod sursa(job #1482969)

Utilizator tiby10Tibi P tiby10 Data 8 septembrie 2015 13:52:38
Problema Secv Scor 80
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, V[MAXN], vals[MAXN];
bitset<MAXN> used;

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