Cod sursa(job #3219006)

Utilizator Chris_BlackBlaga Cristian Chris_Black Data 29 martie 2024 18:54:00
Problema Secventa 5 Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <bits/stdc++.h>
#define vi vector<int>
#define vvi vector<vi>
#define pb push_back
#define int long long
using namespace std;

const string TASK("secv5");
ifstream fin(TASK + ".in");
ofstream fout(TASK + ".out");
#define cin fin
#define cout fout

const int N = (1 << 20) + 9, P = 666013;

int n, l, u, a[N];

int solve(int len)
{
    unordered_map<int, int> fr;

    int ret = 0;
    for(int dr = 1, st = 1, cnt = 0; dr <= n; ++dr)
    {
        if(!fr[a[dr]] ++)cnt ++;

        while(cnt > len)if(!--fr[a[st ++]])cnt --;

        ret += (dr - st);
    }

    return ret;
}

int main()
{
    cin >> n >> l >> u;
    for(int i = 1; i <= n; ++i)cin >> a[i];

    cout << solve(u) - solve(l - 1);
    return 0;
}