Cod sursa(job #3326129)

Utilizator CaliSamuraiCalin Radulescu CaliSamurai Data 27 noiembrie 2025 14:19:50
Problema Secventa 5 Scor 100
Compilator cpp-64 Status done
Runda Teme Pregatire ACM Unibuc 2014, Anul I Marime 0.75 kb
#include <fstream>
#include <unordered_map>
using namespace std;

#define int long long

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

int n;
int a[1048576];

int functie(int t)
{
    unordered_map<int, int> frec;
    int nr=0, nrDist = 0, l = 0;
    for(int r = 0; r < n; r++)
    {
        frec[a[r]]++;
        if (frec[a[r]] == 1) nrDist++;
        while (l <= r && nrDist > t)
        {
            frec[a[l]]--;
            if (frec[a[l]] == 0) nrDist--;
            l++;
        }
        nr += r - l + 1;
    }
    return nr;
}

signed main()
{
    int l, u, x;
    cin >> n >> l >> u;
    for (int i = 0; i < n; i++)
    {
        cin >> x;
        a[i] = x;
    }
    cout << functie(u) - functie(l - 1);
}