Pagini recente » Cod sursa (job #903332) | Cod sursa (job #1913182) | Cod sursa (job #2160875) | Cod sursa (job #2274901) | Cod sursa (job #2438449)
#include <fstream>
#include <unordered_map>
#include <cstdio>
using namespace std;
ifstream in("secv5.in");
ofstream out("secv5.out");
int n,l,u;
unsigned int a[(1<<20)+1];
long long solve(unsigned int x)
{
long long ans=0,dif=0;
unordered_map<unsigned int,int> mp;
int i=1,j=1;
while(i<=n)
{
mp[a[i]]++;
while(mp.size()>x)
{
mp[a[j]]--;
if(mp[a[j]]==0) mp.erase(a[j]);
j++;
}
ans+=i-j+1;
i++;
}
return ans;
}
int main()
{
freopen("secv5.in","r",stdin);
freopen("secv5.out","w",stdout);
scanf("%d%d%d",&n,&l,&u);
for(int i=1;i<=n;i++) scanf("%u",&a[i]);
long long r1,r2;
r1=solve(u);
r2=solve(l-1);
printf("%lld",r1-r2);
return 0;
}