Pagini recente » Cod sursa (job #2715420) | Cod sursa (job #2038507) | Cod sursa (job #146061) | Cod sursa (job #3190685) | Cod sursa (job #2880218)
#include <bits/stdc++.h>
using namespace std;
map<unsigned int,int>M;
unsigned int a[(1 << 20) + 20];
int n, L, U;
ifstream fin("secv5.in");
ofstream fout("secv5.out");
void Citire()
{
fin >> n >> L >> U;
for(int i = 1; i <= n; i++)
{
fin >> a[i];
}
}
long long NrSecvente(int k)
{
int i, j;
long long cnt = 0;
i = 1;
for(j = 1; j <= n; j++)
{
M[a[j]]++;
while(M.size() > k)
{
M[a[i]]--;
if(M[a[i]] == 0) M.erase(a[i]);
i++;
}
cnt+=(j - i + 1);
///adaug cele j-i+1 secvente
///care se termina cu a[j]
}
M.clear();
return cnt;
}
int main()
{
Citire();
fout << NrSecvente(U) - NrSecvente(L - 1);
return 0;
}