Cod sursa(job #2779794)

Utilizator UnknownPercentageBuca Mihnea-Vicentiu UnknownPercentage Data 4 octombrie 2021 23:17:02
Problema Secv Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.13 kb
#include <bits/stdc++.h>

using namespace std;

inline void Open(const string Name) {
    #ifndef ONLINE_JUDGE
        (void)!freopen((Name + ".in").c_str(), "r", stdin);
        (void)!freopen((Name + ".out").c_str(), "w", stdout);
    #endif
}

set <int> unic, s;

int v[5001], aux[5001];
int N, len = 1, ans = -1;

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    Open("secv");

    cin >> N;
    for(int i = 1;i <= N;i++)
        cin >> v[i], aux[i] = v[i];

    sort(aux + 1, aux + N + 1);
    for(int i = 2;i <= N;i++)
        if(aux[i] != aux[i - 1]) aux[++len] = aux[i];


    if(len == 1) {
        cout << 1;
        return 0;
    }

    for(int i = 1;i <= N;i++) {
        if(v[i] == aux[1]) {
            for(int poz = 2, j = i + 1;j <= N;j++) {
                if(v[j] == aux[poz]) 
                    poz++;
                if(poz == len + 1) {
                    if(ans == -1) ans = j - i + 1;
                    else ans = min(ans, j - i + 1);
                    break;
                }
            }
        }
    }

    cout << ans;
    
    return 0;
}