Cod sursa(job #3313182)

Utilizator mihaidavidgabrielDavid Mihai Gabriel mihaidavidgabriel Data 2 octombrie 2025 19:12:44
Problema Secventa 5 Scor 100
Compilator cpp-32 Status done
Runda Arhiva de probleme Marime 1.24 kb
#include <bits/stdc++.h>

using namespace std;

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


long long subsecvente(const vector<unsigned int>& elemente ,int k)
    {
        int n=elemente.size();
        long long nrsecv=0;
        unordered_map<int, int> freq;
        int st=0, distincte=0;
        if (k==1)
           return 0;

        for(int dr=0;dr<n;dr++)
            {
                if(freq[elemente[dr]]==0)
                    distincte++;
                freq[elemente[dr]]++;
                while(distincte>=k && st<dr)
                    {
                        freq[elemente[st]]--;
                        if(freq[elemente[st]]==0)
                            distincte--;
                        st++;
                    }
                nrsecv+=(dr-st+1);
            }
        return nrsecv;
    }


int main() {

    int n, l, u;
    fin >> n >> l >> u;

    vector<unsigned int> elemente(n);
    for (int i = 0; i < n; ++i)
        fin >> elemente[i];
    u++;
    long long nrsecvl = subsecvente(elemente, l);
    long long nrsecvu = subsecvente(elemente, u);
    long long rez=nrsecvu - nrsecvl;

    fout << rez ;

    fin.close();
    fout.close();
    return 0;
}