Cod sursa(job #3284345)

Utilizator abetAlbert Voiculescu abet Data 11 martie 2025 15:00:55
Problema Secv Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.03 kb
#include <bits/stdc++.h>

using namespace std;
ifstream in("secv.in");
ofstream out("secv.out");
map<int, int>mp;
int v[5005];
int main()
{
    int n,rasp=5002;
    in>>n;
    for(int i=1;i<=n;i++){
        in>>v[i];
        mp[v[i]]=1;
    }
    int poz=0,maxpoz=0;
    for(auto &it:mp){
        it.second=++poz;
    }
    maxpoz=poz;
    for(int i=1;i<=n;i++){
        v[i]=mp[v[i]];
    }
    for(int i=1;i<=n;i++){
        if(v[i]==1){ //gasim primul element crescator
            int limit=INT_MAX;
            poz=1; //luam fiecare numar crescator incepand cu 1
            for(int j=i;j<=n;j++){
                if(v[j]==poz) //daca este urmatorul nr crescator
                    poz++;
                if(poz==maxpoz+1){ //daca am ajuns la ultimul element din sirul crescator
                    limit=j-i+1;
                    break;
                }
            }
            rasp=min(rasp,limit); //verificam daca este cel mai scurt subsir
        }
    }
    out<<(rasp==5002)?-1:rasp;
    return 0;
}