Pagini recente » Cod sursa (job #3273739) | Cod sursa (job #1056202) | Cod sursa (job #969961) | Cod sursa (job #2026965) | Cod sursa (job #3275448)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("secv5.in");
ofstream fout("secv5.out");
int n,l,u;
unsigned int a[1050000];
unordered_map <unsigned int,int> m;
/// returneaza nr de secv care au cel mult x elemente distincte
long long F(int x)
{
int i,j,nr;
long long cnt;
j=1;cnt=nr=0;
m.clear();
for(i=1;i<=n;i++)
{
m[a[i]]++;
if(m[a[i]]==1) nr++;
while(nr>x)
{
m[a[j]]--;
if(m[a[j]]==0) nr--;
j++;
}
cnt+=(i-j+1);
}
return cnt;
}
int main()
{
int i;
fin>>n>>l>>u;
for(i=1;i<=n;i++)
fin>>a[i];
fout<<F(u)-F(l-1)<<'\n';
return 0;
}