Cod sursa(job #3219003)

Utilizator Chris_BlackBlaga Cristian Chris_Black Data 29 martie 2024 18:50:34
Problema Secventa 5 Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <bits/stdc++.h>
#define vi vector<int>
#define vvi vector<vi>
#define pb push_back
using namespace std;
const string TASK("secv5");
ifstream fin(TASK + ".in");
ofstream fout(TASK + ".out");
#define cin fin
#define cout fout

const int N = 1e6 + 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 + 1);
    }

    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;
}