Cod sursa(job #3274392)

Utilizator CimpoesuFabianCimpoesu Fabian George CimpoesuFabian Data 6 februarie 2025 17:00:42
Problema Secventa 5 Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("secv5.in");
ofstream fout("secv5.out");

/**

U = 2 L = 3

      i
3 3 1 2 2
    j

     1 2 3
fr = 1 1 0

nr = 2

U = 1 + 2
*/

int l, u, n;
long long a[1100000];
unordered_map <long long, int> m;


long long nr(int lim)
{
    int i = 1, j = 1, cnt = 0, secv = 0;
    m.clear();
    while (i <= n)
    {
        if (m[a[i]] == 0)
            ++cnt;
        m[a[i]]++;
        while (cnt > lim)
        {
            m[a[j]]--;
            if (m[a[j]] == 0)
                --cnt;
            j++;
        }
        secv += (i - j + 1);
        i++;
    }
    return secv;
}

int main()
{
    int i;
    fin >> n >> l >> u;
    for (i = 1 ; i <= n ; i++)
        fin >> a[i];
    fout << nr(u) - nr(l-1);
    return 0;
}