Cod sursa(job #2646986)

Utilizator DenisONIcBanu Denis Andrei DenisONIc Data 2 septembrie 2020 16:34:58
Problema Secv Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <bits/stdc++.h>
using namespace std;

#define NMAX 5005
int n,v[NMAX],ans;
set<int> S;
vector<int> Q;

int main()
{
    freopen("secv.in","r",stdin);
    freopen("secv.out","w",stdout);

    cin >> n;
    for (int i=1;i<=n;i++) cin >> v[i], S.insert(v[i]);

    for (auto it : S){
        Q.push_back(it);
    }

    int crt = 0, ans = 1e9;
    for (int i=1;i<=n;i++){
        crt = 0;
        for (int j=i;j<=n && crt < Q.size(); j++){
            if (v[j] == Q[crt]){
                crt++;
                if (crt >= Q.size()){
                    ans = min(ans, j-i+1);
                    break;
                }
            }
        }
    }

    if (ans > 10000)
        cout << "-1\n";
    else
        cout << ans << '\n';
    return 0;
}