Cod sursa(job #1585325)

Utilizator razvandRazvan Dumitru razvand Data 30 ianuarie 2016 22:19:07
Problema Secv Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <iostream>
#include <fstream>
#include <algorithm>

using namespace std;

ifstream in("secv.in");
ofstream out("secv.out");

long nr[5001];
long nr2[5001];
long nr3[5001];

int n;
int k = 1;

int check(int m) {

    int z = 0;
    for(int i = m; i < n; i++) {
        if(nr[i] == nr3[z])
            z++;
        if(z == k)
            return i-m+1;
    }

    return 10000;

}

int main() {

    in >> n;

    for(int i = 0; i < n; i++) {
        in >> nr[i];
        nr2[i] = nr[i];
    }

    if(n == 1) {
        out << 1;
        return 0;
    }

    sort(nr2, nr2+n);

    nr3[0] = nr2[0];
    for(int i = 1; i < n; i++)
        if(nr2[i] != nr2[i-1])
            nr3[k++] = nr2[i];

    int secv;
    int minA = 10000;

    for(int i = 0; i < n-k+1; i++) {
        secv = check(i);
        if(secv < minA)
            minA = secv;
    }

    if(minA == 10000)
        out << "-1";
    else
        out << minA;

    return 0;
}