Cod sursa(job #2958393)

Utilizator francescom_481francesco martinut francescom_481 Data 26 decembrie 2022 14:05:06
Problema Secventa 5 Scor 70
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.8 kb
#include<bits/stdc++.h>

using namespace std;

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

#define N 2000010
#define power 73
#define mod 66666013
#define oo 1e18

long long n, l, u, v[N];
map < long long , long long > f;

long long fa(long long dif)
{
    long long st = 1, rez = 0, acum = 0;
    for(long long i = 1 ; i <= n ; ++i)
    {
        ++f[v[i]];
        if(f[v[i]] == 1)acum++;
        while(acum > dif  &&  st <= i)
        {
            --f[v[st]];
            if(f[v[st]] == 0)--acum;
            ++st;
        }
        rez += i-st+1;
    }
    return rez;
}

int main()
{
    fin >> n >> l >> u;
    for(long long i = 1 ; i <= n ; ++i)fin >> v[i];
    long long fin = fa(u);
    f.clear();
    fin -= fa(l-1);
    fout << fin;
    return 0;
}