Pagini recente » Cod sursa (job #1808410) | Cod sursa (job #2724645) | Cod sursa (job #1526728) | Cod sursa (job #1444466) | Cod sursa (job #3325180)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("secv5.in");
ofstream fout("secv5.out");
int main() {
int N, L, U;
fin >> N >> L >> U;
vector<long long> a(N);
for (int i = 0; i < N; i++)
fin >> a[i];
long long ansU = 0, ansL = 0;
{
unordered_map<long long,int> freq;
int left = 0, distinct = 0;
for (int right = 0; right < N; right++) {
if (++freq[a[right]] == 1)
distinct++;
while (distinct > U) {
if (--freq[a[left]] == 0)
distinct--;
left++;
}
ansU += (right - left + 1);
}
}
{
int K = L - 1;
unordered_map<long long,int> freq;
int left = 0, distinct = 0;
for (int right = 0; right < N; right++) {
if (++freq[a[right]] == 1)
distinct++;
while (distinct > K) {
if (--freq[a[left]] == 0)
distinct--;
left++;
}
ansL += (right - left + 1);
}
}
fout << ansU - ansL;
return 0;
}