Pagini recente » Cod sursa (job #3295115) | Cod sursa (job #2735256) | Cod sursa (job #1679466) | Cod sursa (job #1414948) | Cod sursa (job #3318200)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("secv5.in");
ofstream fout("secv5.out");
int n,l,u;
const int Nmax=(1<<20)+3;
unsigned int a[Nmax],b[Nmax];
int v[Nmax];
int fr[Nmax];
long long nr_secv(int k)
{
int st=1,rem=0;
long long cnt=0;
for (int i=1;i<=n;i++)
{
fr[v[i]]++;
if (fr[v[i]]==1) rem++;
while (rem>k)
{
fr[v[st]]--;
if (fr[v[st]]==0) rem--;
st++;
}
cnt=cnt+(i-st+1);
}
return cnt;
}
int main()
{
fin>>n>>l>>u;
for (int i=1;i<=n;i++)
fin>>a[i],b[i]=a[i];
sort(b+1,b+n+1);
for (int i=1;i<=n;i++)
v[i]=lower_bound(b+1,b+n+1,a[i])-b;
long long nr1=nr_secv(l-1);
memset(fr,0,sizeof(fr));
long long nr2=nr_secv(u);
fout<<nr2-nr1;
return 0;
}