Cod sursa(job #3271031)

Utilizator unomMirel Costel unom Data 25 ianuarie 2025 08:14:17
Problema Secventa 5 Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <fstream>
#include <unordered_map>

using namespace std;

ifstream in("secv5.in");
ofstream out("secv5.out");
int n, x, y;
int v[1050585];

int solve(int nr)
{
    int st = 1;
    int dr = 1;
    int cnt = 0;
    int ans = 0;
    unordered_map<int, int> um;

    while(dr <= n)
    {
        if(um[v[dr]] == 0)
        {
            cnt++;
        }
        um[v[dr]]++;

        while(cnt > nr)
        {
            um[v[st]]--;

            if(um[v[st]] == 0)
            {
                cnt--;
            }

            st++;
        }

        //out<<st<<" "<<dr<<'\n';
        ans += (dr - st + 1);

        dr++;
    }

    return ans;
}

int main()
{
    in>>n>>x>>y;
    for(int i = 1; i<=n; i++)
    {
        in>>v[i];
    }

    out<<solve(y) - solve(x - 1);

    return 0;
}