Pagini recente » Cod sursa (job #2952397) | Cod sursa (job #141872) | Cod sursa (job #1659877) | Cod sursa (job #1030627) | Cod sursa (job #2730621)
#include <fstream>
#include <unordered_map>
using namespace std;
const int N = 1 << 20;
unsigned int n, l, u, v[N];
long long nr_secv(int l)
{
long long rez = 0;
int j = 0, nrd = 0;
unordered_map <unsigned int, unsigned int> nr;
for (int i = 0; i < n; i++)
{
nr[v[i]]++;
if (nr[v[i]] == 1)
{
nrd++;
}
while (j <= i && nrd > l)
{
nr[v[j]]--;
if (nr[v[j]] == 0)
{
nrd--;
}
j++;
}
rez += i - j + 1;
}
return rez;
}
int main()
{
ifstream in("secv5.in");
ofstream out("secv5.out");
in >> n >> l >> u;
for (int i = 0; i < n; i++)
{
in >> v[i];
}
out << nr_secv(u) - nr_secv(l - 1);
return 0;
}