Cod sursa(job #1658367)

Utilizator NicolaalexandraNicola Alexandra Mihaela Nicolaalexandra Data 21 martie 2016 13:51:32
Problema Secv Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <fstream>

#include <algorithm>

using namespace std;

int n,v[5001],w[5001],k,i,j,minim,x,ok;

ifstream fin ("secv.in");

ofstream fout ("secv.out");

int main (){

    fin>>n;
    for (i=1;i<=n;i++){
        fin>>v[i];
        w[i] = v[i];
    }
    sort (w+1, w+n+1);
    k = 1;
    // eliminam dublurile
    for (i=2;i<=n;i++){
        if (w[i] != w[i-1])
            w[++k] = w[i];
    }
    //pe pozitii de la 1 la k vor ramane elementele unice
    //x = 1;
    minim = 2000000000;
    for (i=1;i<=n-k+1;i++){
        // fixam inceputul subsirului;
        ok = 0;
        x = 1;
        for (j=i;j<=n;j++)
            if (v[j] == w[x]){
                x++;
                if (x > k){
                    ok = 1;
                    break;
                }
            }
        if (ok == 1)
            if (j-i+1 < minim){
                minim = j-i+1;
            }
    }
    if (minim == 2000000000)
        fout<<-1;
    else
        fout<<minim;

    return 0;
}