Pagini recente » Cod sursa (job #1817090) | Cod sursa (job #1352274) | Cod sursa (job #1667599) | Cod sursa (job #3264533) | Cod sursa (job #2865569)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("secv5.in");
ofstream fout("secv5.out");
unsigned int a[1050000];
int n, L, U;
long long Nrsec(int L)
{
unordered_map<unsigned int, int>M;
long long secv = 0;
int i, j, cnt = 0;
j = 1;
for(i = 1;i <= n;i++)
{
M[a[i]]++;
if(M[a[i]] == 1)
cnt++;
while(cnt > L)
{
if(M[a[j]] == 1)
cnt--;
M[a[j]]--;
j++;
}
secv += i - j + 1;
}
return secv;
}
int main()
{
int i;
long long sol;
fin >> n >> L >> U;
for(i = 1;i <= n;i++)
fin >> a[i];
sol = Nrsec(U) - Nrsec(L - 1);
fout << sol << "\n";
fout.close();
return 0;
}