Cod sursa(job #1666387)

Utilizator MihneaGhiraMihnea MihneaGhira Data 27 martie 2016 23:47:55
Problema Secv Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include<fstream>
#include<algorithm>
using namespace std;
ifstream fin("secv.in");
ofstream fout("secv.out");
int n,minim,i,j,k,c,ok,t;
int v[5001],w[5001],g[5001];
int main(){
    fin>>n;
    for(i=1;i<=n;i++){
        fin>>v[i];
        w[i]=v[i];
    }
    sort(w+1,w+n+1);
    for(i=2;i<=n;i++){
        if(w[i]!=w[i-1]){
            g[++t]=w[i-1];
        }
    }
    if(w[n]!=w[n-1])
        g[++t]=w[n];
    minim=2000000000;
    for(i=1;i<=n-t+1;i++){
        ok=0;
        c=1;
        for(j=i;j<=n;j++){
            if(v[j]==g[c]){
                c++;
                if(c>t){
                    ok=1;
                    break;
                }
            }
        }
        if(ok==1){
            if(minim>j-i+1)
                minim=j-i+1;
        }
    }
    if(minim==2000000000)
        fout<<"-1";
    else
        fout<<minim;
    return 0;
}