Pagini recente » Statistici ruscuta florin (florus02) | Cod sursa (job #907029) | Cod sursa (job #1771356) | Monitorul de evaluare | Cod sursa (job #1574263)
#include <iostream>
#include <fstream>
#include <unordered_map>
using namespace std;
typedef long long ll;
const ll MAXN = 1 << 20 + 1;
int n, l, u;
int a[MAXN];
ll cntSeq(int k) {
ll res = 0;
int cnt = 0;
int Li = 0;
unordered_map<unsigned int, int> H;
for (int i = 0; i < n; ++i) {
++H[a[i]];
while (H.size() > k) {
--H[a[Li]];
if (H[a[Li]] == 0) {
H.erase(a[Li]);
}
++Li;
}
res += i - Li + 1;
}
return res;
}
int main()
{
ifstream cin("secv5.in");
//ofstream cout("secv5.out");
cin >> n >> l >> u;
for (int i = 0; i < n; ++i) {
cin >> a[i];
}
cout << cntSeq(u) - cntSeq(l - 1);
return 0;
}