Cod sursa(job #2844852)

Utilizator RazvanLazar2004Lazar Razvan Gabriel RazvanLazar2004 Data 5 februarie 2022 18:33:46
Problema Secv Scor 70
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.17 kb
#include <bits/stdc++.h>
using namespace std;
long long int v[5011],d[5011];
int main()
{
    ifstream cin("secv.in");
    ofstream cout("secv.out");
    long long int n, k=1, nr=0, minim=2000000000;
    cin >> n;
    for (int i = 1; i <= n; i++){
        cin >> v[i];
        d[i] = v[i];
    }
    sort(d + 1, d + n + 1);
    for (int i = 2; i <= n; i++){
        if (d[i] != d[k]){
            k++;
            d[k] = d[i];
        }
    }
    if (k == 1){
        if(n==1){
            cout<<1;
        }else{
            cout<<0;
        }
    }
    for (int i=1; i<=n; i++){
        if (v[i] == d[1]){
            nr = 2;
            for (int j = i + 1; j <= n; j++){
                if (v[j] == d[nr]){
                    nr++;
                }
                if (j - i + 1 >= minim){
                    break;
                }
                if (nr == k+1){
                    minim = j - i + 1;
                    break;
                }
            }

        }
    }
    if (minim == 2000000000){
        if(n==1){
            cout<<1;
        }else{
            cout<<0;
        }
    }else{
        cout << minim;
    }
}