Pagini recente » Cod sursa (job #3138502) | Cod sursa (job #1410279) | Cod sursa (job #3128812) | Cod sursa (job #2168720) | Cod sursa (job #2877025)
#include <fstream>
#include <unordered_map>
using namespace std;
const int NMAX = (1 << 20);
int N, L, U;
unsigned int v[NMAX];
long long Solve(const int &K) {
unordered_map <unsigned int, int> freq;
long long cnt = 0;
for (int i = 0, j = 0; i < N; ++i) {
freq[v[i]] += 1;
while (freq.size() > K) {
freq[v[j]]--;
if (freq[v[j]] == 0) {
freq.erase(v[j]);
}
++j;
}
cnt = 1LL * cnt + (i - j + 1);
}
return cnt;
}
int main() {
ifstream fin("secv5.in");
ofstream fout("secv5.out");
fin >> N >> L >> U;
for (int i = 0; i < N; ++i) {
fin >> v[i];
}
fout << Solve(U) - Solve(L - 1) << "\n";
fin.close();
fout.close();
return 0;
}