Cod sursa(job #3185773)

Utilizator amavutsiviataAndrei Preda amavutsiviata Data 20 decembrie 2023 13:14:33
Problema Secventa 5 Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <fstream>
#include <map>
using namespace std;
ifstream cin("secv5.in");
ofstream cout("secv5.out");
int n, i, v[1048577], u, x;

int count (int mx) {
    long long ans = 0;
    int frq[1048577];
    for (int uis = 0 ; uis < 1048577; uis++)
        frq[uis] = 0;
    int l = 1, cnt = 0;
    for (int r = 1; r <= n; r++) {
        if (++frq[v[r]] == 1){
            cnt++;
            while (cnt > mx && l <= r) {
                if (--frq[v[l]] == 0)
                    cnt--;
                l++;
            }
        }
        ans += r - l + 1;
    }
    return ans;
}

int main()
{
    cin >> n >> x >> u;
    for (i = 1; i <= n; i++)
    {
        cin >> v[i];
    }
    cout << count(u) - count(x - 1);
    return 0;
}