Cod sursa(job #2004261)

Utilizator workwork work work Data 25 iulie 2017 13:43:51
Problema Secv Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <bits/stdc++.h>

using namespace std;

FILE *F = fopen("secv.in", "r"), *G = fopen("secv.out", "w");

int k, u, p, n, x, w[5001], v[5001], K, lg, su = 6001, sp = 0;
set<int> s;

int main()
{
    fscanf(F, "%d ", &n);
    for(int i = 1; i <= n; ++ i)
    {
        fscanf(F, "%d ", &v[i]);
        s.insert(v[i]);
    }
    while(!s.empty())
    {
        x = *s.begin();
        w[++ K] = x;
        s.erase(s.begin());
    }
    for(int i = 1; i <= n; ++ i)
    {
        lg = 1;
        for(int j = i; j <= n; ++ j)
        {
            if(v[j] == w[lg]) lg++;
            if(lg == K+1)
            {
                if(su - sp > j - i) su = j, sp = i;
                break;
            }
        }
    }
    if(su == 6000) fprintf(G, "%d", -1);
    else fprintf(G, "%d", su - sp + 1);
    return 0;
}