Cod sursa(job #2836127)

Utilizator AndreiCroitoruAndrei Croitoru AndreiCroitoru Data 19 ianuarie 2022 19:55:13
Problema Secv Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.18 kb
#include <bits/stdc++.h>

using namespace std;

int v[5001],cv[5001];
int main()
{
    ifstream cin("secv.in");
    ofstream cout("secv.out");

    int n, k=1, cnt=0, minim=INT_MAX;
    cin >> n;
    for (int i = 1; i <= n; i++)
    {
        cin >> v[i];
        cv[i] = v[i];
    }
    sort(cv + 1, cv + n + 1);
    for (int i = 2; i <= n; i++)
    {
        if (cv[i] != cv[k])
        {
            cv[++k] = cv[i];
        }
    }
    if (k == 1)
    {
        cout << "1\n";
        return 0;
    }
    for (int i=1; i<=n; i++)
    {
        if (v[i] == cv[1])
        {
            cnt = 2;
            for (int j = i + 1; j <= n; j++)
            {
                if (v[j] == cv[cnt])
                {
                    cnt++;
                }
                if (j - i + 1 >= minim)
                {
                    break;
                }
                if (cnt == k+1)
                {
                    minim = j - i + 1;
                    break;
                }
            }

        }
    }
    if (minim == INT_MAX)
    {
        cout << "-1\n";
    }
    else
    {
        cout << minim;
    }
    return 0;
}