Cod sursa(job #2305611)

Utilizator OctavianVasileVasileOctavian OctavianVasile Data 20 decembrie 2018 17:38:00
Problema Secv Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("secv.in");
ofstream fout ("secv.out");
const int NMAX = 5003;
int n, k, ans = NMAX, p1, p2;
int v [NMAX], aux [NMAX], u [NMAX];
void unix (){
    sort (aux + 1, aux + n + 1);
    u [++ k] = aux [1];
    for (int i = 2; i <= n; i ++)
        if (aux [i - 1] != aux [i])
            u [++ k] = aux [i];
}
int main (){
    fin >> n;
    for (int i = 1; i <= n; i ++)
        fin >> v [i], aux [i] = v[i];
    unix ();
    for (int i = 1; i <= n; i ++){
        p2 = i, p1 = 1;
        while (p2 <= n && p1 <= k){
            if (v [p2] == u [p1])p1 ++;
            p2 ++;
        }
        if (p2 < n + 1 || p1 > k)
            ans = min (ans, p2 - i);
    }
    if (ans != NMAX)fout << ans;
    else fout << -1;
    return 0;
}