Pagini recente » Cod sursa (job #944819) | Cod sursa (job #411343) | Cod sursa (job #2978103) | Cod sursa (job #2926385) | Cod sursa (job #1714039)
#include <bits/stdc++.h>
using namespace std;
constexpr int MAX_N = 1 << 20;
array<unsigned int, MAX_N> A;
int N, L, U;
long long countDistinct(int NR)
{
map<unsigned int,int> Map;
int j = 0;
long long answer = 0;
for (int i = 0; i < N; ++i)
{
++Map[ A[i] ];
while (static_cast<int>(Map.size()) > NR)
{
--Map[ A[j] ];
if (Map[ A[j] ] == 0)
Map.erase(A[j]);
j++;
}
answer += i - j + 1;
}
return answer;
}
int main()
{
ifstream in("secv5.in");
ofstream out("secv5.out");
in >> N >> L >> U;
for (int i = 0; i < N; ++i)
in >> A[i];
out << countDistinct(U) - countDistinct(L - 1) << endl;
return 0;
}