Cod sursa(job #2588955)

Utilizator maramihaliMara Mihali maramihali Data 25 martie 2020 16:46:15
Problema Secventa 5 Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <bits/stdc++.h>

using namespace std;

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

unsigned int a[1050000], l, u, n;

long long func(int l)
{
    map <unsigned int, int> m;
    long long secv = 0;
    int index = 0, j = 1;
    for(int i = 1; i <= n; i++)
    {
        m[a[i]]++;
        if(m[a[i]] == 1)
        {
            index++;
        }
        while(index > l)
        {
            if(m[a[j]] == 1)
            {
                index--;
            }
            m[a[j]]--;
            j++;
        }
        secv += i - j + 1;
    }
    return secv;
}

int main()
{
    long long ans;
    in >> n >> l >> u;
    for(int i = 1; i <= n; i++)
    {
        in >> a[i];
    }
    ans = func(u) - func(l - 1);
    out << ans;
    return 0;
}