Cod sursa(job #3290382)

Utilizator Iustin.DDragusanu Iustin Iustin.D Data 30 martie 2025 16:20:30
Problema Secventa 5 Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <fstream>
#include <unordered_map>
using namespace std;

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

#define int long long

int v[1048577];
unordered_map<int,int>vf1;
unordered_map<int,int>vf2;

int32_t main()
{
    int n,l,u;
    cin>>n>>l>>u;
    int lf=1,cnt=0,cf1=0,cf2=0;
    for (int i=1; i<=n; i++)
    {
        cin>>v[i];
        vf1[v[i]]++;
        if (vf1[v[i]]==1) cnt++;
        while (cnt>u)
        {
            vf1[v[lf]]--;
            if (vf1[v[lf]]==0) cnt--;
            lf++;
        }
        if (cnt<=u) cf1+=i-lf+1;
    }
    cnt=0,lf=1;
    for (int i=1; i<=n; i++)
    {
        vf2[v[i]]++;
        if (vf2[v[i]]==1) cnt++;
        while (lf<=i&&cnt>=l)
        {
            vf2[v[lf]]--;
            if (vf2[v[lf]]==0) cnt--;
            lf++;
        }
        if (cnt<l) cf2+=i-lf+1;
    }
    cout<<cf1-cf2;
}