Cod sursa(job #3274066)

Utilizator zavragiudavid dragoi zavragiu Data 4 februarie 2025 22:15:38
Problema Secventa 5 Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <iostream>
#include <vector>
#include <algorithm>
#include <iostream>
#include <string>
#include <bitset>
#include <queue>
#include <fstream>
#include <stdio.h>
#include <string.h>
#include <iomanip>
#include <stack>
#include <climits>
#include <unordered_map>
#include <map>
#include <set>
#include <cmath>
using namespace std;

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

/*
5 2 3
3 3 1 2 2

    1 2 3 
fr=
nr=
*/

int n, L, U;
unordered_map<int, int> M, fr;

long long F(int val)
{
	int i, j, nr = 0, ans = 0;
	j = 1;
	for (i = 1; i <= n; i++)
		fr[M[i]] = 0;
	for (i = 1; i <= n; i++)
	{
		fr[M[i]]++;
		if (fr[M[i]] == 1) nr++;
		while (nr > val)
		{
			fr[M[j]]--;
			if (fr[M[j]] == 0) nr--;
			j++;
		}
		ans += i - j + 1;
	}
	return ans;
}

int main()
{
	int i, j;
	fin >> n >> L >> U;
	for (i = 1; i <= n; i++)
		fin >> M[i];
	fout << F(U) - F(L - 1);
	return 0;
}