Cod sursa(job #2882728)

Utilizator BorodiBorodi Bogdan Borodi Data 31 martie 2022 19:04:27
Problema Secv Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.2 kb
#include <fstream>
#include <string>
#include <bitset>
#include <set>
#include <queue>
#include <algorithm>
#include <cmath>
#include <cstring>
#include <vector>
#include <stack>
#include <bitset>
#include <stack>
#include <unordered_map>
#define MOD 666013
#define Nmax 5001
using namespace std;

ifstream fin("secv.in");
ofstream fout("secv.out");

typedef vector < pair < int, int > > VIP;
typedef vector < int > VI;

int n;
const int oo = 1 << 28;
int V[Nmax], A[Nmax];

int main() {
    fin >> n;

    for(int i = 1; i <= n; ++i){
        fin >> V[i];
        A[i] = V[i];
    }

    sort(A + 1, A + 1 + n);   

    int k = 1;

    for(int i = 1; i <= n; ++i)
        if(A[i] != A[k])
            A[++k] = A[i];

    int mini = oo;

    for(int i = 1; i <= n; ++i)
        if(V[i] == A[1]){
            int l = 2;

            for(int j = i + 1; j <= n; ++j){
                if(V[j] == A[l])
                    l++;

                if(l == k + 1){
                    mini = min(mini, j - i + 1);
                    break;
                }
            }
        }
    
    if(mini = oo)
        fout << -1;
    else
        fout << mini;

    return 0;   
}