Pagini recente » Cod sursa (job #2738271) | Cod sursa (job #22265) | Cod sursa (job #2264944) | Cod sursa (job #142472) | Cod sursa (job #3274464)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("secv5.in");
ofstream fout("secv5.out");
int n,l,u;
unsigned long long v1,v2;
unsigned int a[1050000];
map <unsigned int, int> m;
int main()
{
int i,st,dr,nr=0;
fin>>n>>l>>u;
for(i=1;i<=n;i++)
fin>>a[i];
st=1;
for(dr=1;dr<=n;dr++)
{
if(m[a[dr]]==0)
nr++;
m[a[dr]]++;
while(u<nr)
{
if(m[a[st]]==1)
nr--;
m[a[st]]--;
st++;
}
v1+=dr+1-st;
}
l--;
m.clear();
nr=0;
st=1;
for(dr=1;dr<=n;dr++)
{
if(m[a[dr]]==0)
nr++;
m[a[dr]]++;
while(l<nr)
{
if(m[a[st]]==1)
nr--;
m[a[st]]--;
st++;
}
v2+=dr+1-st;
//cout<<st<<" "<<dr<<" "<<v2<<"\n";
}
fout<<v1-v2<<"\n";
return 0;
}