Cod sursa(job #1309989)

Utilizator mvcl3Marian Iacob mvcl3 Data 6 ianuarie 2015 11:58:21
Problema Secv Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <fstream>
#include <vector>
#include <set>
#include <cstdlib>

#define Max_Size 10000

using namespace std;

const char iname[] = "secv.in";
const char oname[] = "secv.out";

long long N, A[Max_Size];

vector < long long > Subsequence;

set < long long > My_Set;

int main()
{
    ifstream in( iname );

    in >> N;
    for(int i = 0; i < N; ++i) in >> A[i], My_Set.insert(A[i]);

    for(set < long long > :: iterator it = My_Set.begin(); it != My_Set.end(); ++it)  Subsequence.push_back( *it );

    int rez = Max_Size;

    for(int i = 0, j; i < N; ++i)
        if(A[i] == Subsequence[0])  {
            int step = 1;
            for(j = i + 1; j < N; ++j) {
                if(A[j] == Subsequence[step]) ++step;
                if(step >= Subsequence.size())  break;
            }

            if(step == Subsequence.size())  rez = min(rez, j - i + 1);
        }

    ofstream out( oname );

    out << (rez != Max_Size ? rez :-1) << '\n';
}