Pagini recente » Cod sursa (job #1663214) | Cod sursa (job #2767965) | Cod sursa (job #984780) | Cod sursa (job #1460217) | Cod sursa (job #2655848)
#include <fstream>
#include <unordered_map>
using namespace std;
const int NMAX = 1 << 20;
unsigned int v[1 + NMAX];
unordered_map<unsigned int, int> hm;
int n;
int calcSecv(int maxim)
{
int count = 0;
int nrSecv = 0;
hm.clear();
for (int st = 1, dr = 1; dr <= n; dr++)
{
hm[v[dr]]++;
if (hm[v[dr]] == 1)
{
count++;
}
while (count > maxim)
{
hm[v[st]]--;
if (hm[v[st]] == 0)
{
count--;
}
st++;
}
nrSecv += dr - st + 1;
}
return nrSecv;
}
int main()
{
ifstream in("secv5.in");
ofstream out("secv5.out");
int l, u;
in >> n >> l >> u;
for (int i = 1; i <= n; i++)
{
in >> v[i];
}
out << calcSecv(u) - calcSecv(l - 1);
return 0;
}