Cod sursa(job #3274964)

Utilizator 1gbr1Gabara 1gbr1 Data 8 februarie 2025 16:08:31
Problema Secventa 5 Scor 50
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <fstream>
#include <iostream>
#include <vector>
#include <unordered_map>
#include <string>
#include <algorithm>
using namespace std;

ifstream fin("secv5.in");
ofstream fout("secv5.out");
long long a[105000];
unordered_map<long long, int> M;
int n, l, u;
long long f(int k)
{
    int st = 1, dr = 1;
    int cnt = 0;
    long long rez=0;
    M.clear();
    while (dr <= n)
    {
        
        if (M[a[dr]] == 0)
            cnt++;
        M[a[dr]]++;
        while (cnt > k)
        {
            M[a[st]]--;
            if (M[a[st]] == 0)
                cnt--;
            st++;
        }
        rez += (dr - st + 1);
        dr++;
    }
    return rez;
}
int main()
{
    fin >> n >> l >> u;
    for (int i = 1; i <= n; i++)
        fin >> a[i];
    fout << f(u) - f(l - 1);
    return 0;
}