Cod sursa(job #3182840)

Utilizator AndreiDragosDavidDragos Andrei David AndreiDragosDavid Data 9 decembrie 2023 20:59:40
Problema Secventa 5 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <bits/stdc++.h>
#define ll long long

using namespace std;

ifstream in("secv5.in");
ofstream out("secv5.out");

const int maxn = 1e7;

int n, L, U;
ll a[maxn];

ll func(int dis){
    unordered_map<ll, int> cnt;
    int l=0, dct=0;
    ll res=0;

    for(int r=0; r<n; r++){
        if(++cnt[a[r]] == 1){
            dct++;

            while(dct>dis){
                if(--cnt[a[l]] == 0)
                    dct--;
                ++l;
            }
        }

        res+=r-l;
    }

    return res;
}

int main() {
   in >> n >> L >> U;

    for(long i=0; i<n; ++i){
        in >> a[i];
    }

    out << func(U) - func(L-1);

    return 0;
}