Pagini recente » Cod sursa (job #1363373) | Cod sursa (job #1818657) | Cod sursa (job #1174630) | Cod sursa (job #506594) | Cod sursa (job #1714036)
#include <bits/stdc++.h>
using namespace std;
constexpr int MAX_N = 1 << 20;
int A[MAX_N];
int N, L, U;
long long countDistinct(int NR)
{
map<int,int> Map;
int j = 1;
long long answer = 0;
for (int i = 1; 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 = 1; i <= N; ++i)
in >> A[i];
out << countDistinct(U) - countDistinct(L - 1) << endl;
return 0;
}