Cod sursa(job #1459128)

Utilizator NistorSergiuNistor Sergiu NistorSergiu Data 9 iulie 2015 10:58:12
Problema Secv Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <fstream>
#include <algorithm>
#include <vector>

#define NMAX 5001

using namespace std;

vector <int> s, sortedS, el;

int main()
{
    int n;
    int i, j, k;
    int bestSize;
    ifstream f("secv.in");
    f >> n;
    s.resize(n);
    for(i = 0; i < n; i++)
        f >> s[i];
    f.close();
    bestSize = n + 1;
    sortedS = s;
    sort(sortedS.begin(), sortedS.end());
    el.resize(n);
    vector <int>:: iterator it = unique_copy(sortedS.begin(), sortedS.end(), el.begin());
    el.erase(it, el.end());
    for(i = 0; i < n; i++)
        if(s[i] == el[0])
        {
            j = i + 1;
            k = 1;
            while(j < n && k < el.size())
            {
                if(s[j] == el[k])
                    k++;
                j++;
            }
            if(k >= el.size())
                bestSize = min(bestSize, j - i);
        }
    if(bestSize > n)
        bestSize = -1;
    ofstream g("secv.out");
    g << bestSize << '\n';
    g.close();
    return 0;
}