Pagini recente » Cod sursa (job #3288512) | Cod sursa (job #1287224) | Cod sursa (job #488178) | Cod sursa (job #1110033) | Cod sursa (job #1266914)
#include <fstream>
#include <unordered_map>
using namespace std;
const int kMaxN = 1050000;
ifstream fin("secv5.in");
ofstream fout("secv5.out");
int N, L, U;
unsigned int v[kMaxN];
long long Count(size_t lim) {
unordered_map<unsigned int, int> ap;
int st = 1;
long long sol = 0;
for (int i = 1; i <= N; ++i) {
++ap[v[i]];
while (ap.size() > lim) {
--ap[v[st]];
if (!ap[v[st]])
ap.erase(v[st]);
++st;
}
sol += i - st + 1;
}
return sol;
}
int main() {
fin >> N >> L >> U;
for (int i = 1; i <= N; ++i)
fin >> v[i];
fout << Count(U) - Count(L - 1) << "\n";
return 0;
}