Cod sursa(job #3301915)

Utilizator superbibiHudea P. Victor superbibi Data 1 iulie 2025 10:32:02
Problema Secventa 5 Scor 0
Compilator cpp-64 Status done
Runda Teme Pregatire ACM Unibuc 2014, Anul I Marime 0.81 kb

#include <fstream>
#include <iostream>
using namespace std;
ifstream fin("secv5.in");
ofstream fout("secv5.out");

int n;
long long v[10000005];

long long twop(int mx)
{
    unordered_map<long long, int> mep;
    long long c = 0, nr = 0;
    int s = 0, d = 0;
    while (d < n)
    {
        mep[v[d]]++;
        if (mep[v[d]] == 1)
            nr++;
        d++;
        while (nr > mx)
        {
            // cout<<s<<" "<<d<<'\n';
            mep[v[s]]--;
            if (mep[v[s]] == 0)
            {
                nr--;
                mep.erase(v[s]);
            }
            s++;
        }
        c = c + d - s;
    }
    // cout<<c<<"\n";
    return c;
}

int main()
{
    int l, u;
    fin >> n >> l >> u;
    for (int i = 1; i <= n; i++)
    {
        fin >> v[i];
    }
    fout << twop(u) - twop(l - 1);
}