Cod sursa(job #2865569)

Utilizator NeganAlex Mihalcea Negan Data 8 martie 2022 22:20:33
Problema Secventa 5 Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <bits/stdc++.h>
using namespace std;

ifstream fin("secv5.in");
ofstream fout("secv5.out");
unsigned int a[1050000];

int n, L, U;
long long Nrsec(int L)
{
    unordered_map<unsigned int, int>M;
    long long secv = 0;
    int i, j, cnt = 0;
    j = 1;
    for(i = 1;i <= n;i++)
    {
        M[a[i]]++;
        if(M[a[i]] == 1)
            cnt++;
        while(cnt > L)
        {
            if(M[a[j]] == 1)
                cnt--;
            M[a[j]]--;
            j++;
        }
        secv += i - j + 1;
    }
    return secv;
}

int main()
{
    int i;
    long long sol;
    fin >> n >> L >> U;
    for(i = 1;i <= n;i++)
        fin >> a[i];
    sol = Nrsec(U) - Nrsec(L - 1);
    fout << sol << "\n";
    fout.close();
    return 0;
}