Pagini recente » Cod sursa (job #1473036) | Cod sursa (job #490842) | Cod sursa (job #2497438) | Cod sursa (job #1805007) | Cod sursa (job #1968482)
#include <fstream>
#include <unordered_map>
#include <cmath>
using namespace std;
ifstream f("secv5.in");
ofstream g("secv5.out");
unsigned int n, mi, ma, v[1 << 20 + 5];
long long nr (unsigned int mi) {
unordered_map <unsigned int, unsigned int> q;
unsigned int pr = 1;
int i;
long long sol = 0;
for (int i = 1; i <= n; ++i) {
q[v[i]]++;
while (q.size() > mi) {
q[v[pr]]--;
if (q[v[pr]] == 0) q.erase(v[pr]);
pr++;
}
sol += 1LL * (i - pr + 1);
}
return sol;
}
int main()
{
f >> n >> mi >> ma;
for (int i = 1; i <= n; ++i)
f >> v[i];
g << nr(ma) - nr (mi - 1) << "\n";
return 0;
}