Pagini recente » Cod sursa (job #710632) | Cod sursa (job #1049768) | Cod sursa (job #1687115) | Cod sursa (job #2140732) | Cod sursa (job #3351888)
#include <fstream>
#include <vector>
#include <unordered_map>
std::vector<long long> v;
long long solve(long long k, long long n) {
std::unordered_map<long long, long long> fr;
long long l = 0, r = 0, ans = 0, uniq = 0;
while (r < n) {
uniq += fr[v[r]] == 0;
++fr[v[r]];
while (uniq > k) {
--fr[v[l]];
uniq -= fr[v[l]] == 0;
++l;
}
ans += r - l + 1;
++r;
}
return ans;
}
int main() {
long long n, l, u;
std::ifstream fin("secv5.in");
fin >> n >> l >> u;
for (long long i = 0; i < n; ++i) {
long long temp;
fin >> temp;
v.push_back(temp);
}
std::ofstream fout("secv5.out");
fout << solve(u, n) - solve(l - 1, n) << std::endl;
return 0;
}