Pagini recente » Cod sursa (job #2632523) | Cod sursa (job #2654187) | Cod sursa (job #880102) | Cod sursa (job #2659701) | Cod sursa (job #2608837)
#include <iostream>
#include <fstream>
#include <unordered_map>
using namespace std;
const int MAXN = (1<<20)+5;
int n, L, U;
unsigned int values[MAXN];
long long compute(int x)
{
unordered_map<unsigned int, int> m;
int st = 0;
long long sol = 0;
for (int dr = 0; dr < n; dr++) {
++m[values[dr]];
while (m.size() > x) {
if ((--m[values[st]]) == 0)
m.erase(values[st]);
++st;
}
sol += dr - st +1;
}
return sol;
}
int main()
{
ifstream fin("secv5.in");
ofstream fout("secv5.out");
fin >> n >> L >> U;
for (int i = 0; i < n; i++)
fin >> values[i];
long long rez = compute(U) - compute(L-1);
fout << rez;
return 0;
}