Cod sursa(job #2730613)

Utilizator rapidu36Victor Manz rapidu36 Data 26 martie 2021 16:44:50
Problema Secventa 5 Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <fstream>
#include <map>

using namespace std;

const int N = 1 << 20;

int n, l, u, v[N];

long long nr_secv(int l)
{
    long long rez = 0;
    int j = 0, nrd = 0;
    map<int, int> nr;
    for (int i = 0; i < n; i++)
    {
        nr[v[i]]++;
        if (nr[v[i]] == 1)
        {
            nrd++;
        }
        while (j <= i && nrd > l)
        {
            nr[v[j]]--;
            if (nr[v[j]] == 0)
            {
                nrd--;
            }
            j++;
        }
        rez += i - j + 1;
    }
    return rez;
}

int main()
{
    ifstream in("secv5.in");
    ofstream out("secv5.out");
    in >> n >> l >> u;
    for (int i = 0; i < n; i++)
    {
        in >> v[i];
    }
    out << nr_secv(u) - nr_secv(l - 1);
    return 0;
}