Pagini recente » Cod sursa (job #2702570) | Cod sursa (job #158864) | Cod sursa (job #1865621) | Cod sursa (job #30546) | Cod sursa (job #2877019)
#include <fstream>
#include <vector>
#include <unordered_map>
using namespace std;
long long Solve(vector <int> &v, int K) {
unordered_map <unsigned int, int> freq;
long long cnt = 0;
for (int i = 0, j = 0; i < v.size(); ++i) {
freq[v[i]] += 1;
while (j < i && freq.size() > K) {
freq[v[j]]--;
if (freq[v[j]] == 0) {
freq.erase(v[j]);
}
++j;
}
cnt += (i - j);
}
return cnt;
}
int main() {
ifstream fin("secv5.in");
ofstream fout("secv5.out");
int N, L, U;
fin >> N >> L >> U;
vector <int> v(N);
for (int i = 0; i < N; ++i) {
fin >> v[i];
}
fout << Solve(v, U) - Solve(v, L - 1) << "\n";
fin.close();
fout.close();
return 0;
}