Cod sursa(job #3270442)

Utilizator daria_diaconuDiaconu daria_diaconu Data 23 ianuarie 2025 14:18:41
Problema Secventa 5 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.85 kb
#pragma GCC optimize("Ofast", "unroll-loops")
#include <bits/stdc++.h>
#define int unsigned int
using namespace std;

int n;
int v[1050000];

 long long f(int k)
{
     long long ans=0;
    unordered_map<int, int> fr;
    long long l=1, cnt=0;
    for(long long r=1; r<=n; r++)
    {
        fr[v[r]]++;
        if(fr[v[r]]==1)
        {
            cnt++;
            while(l<=n && cnt>k)
            {
                fr[v[l]]--;
                if(fr[v[l]]==0)
                    cnt--;
                l++;
            }
        }
        ans+=r-l;
    }
    return ans;
}
signed main()
{
    ifstream cin("secv5.in");
    ofstream cout("secv5.out");
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int l, u;
    cin>>n>>l>>u;
    for(int i=1; i<=n; i++)
        cin>>v[i];
    cout<<f(u)-f(l-1);
    return 0;
}