Pagini recente » Cod sursa (job #3269983) | Cod sursa (job #552335) | Cod sursa (job #1783522) | Cod sursa (job #2791872) | Cod sursa (job #3153858)
#include <iostream>
#include <fstream>
#include <unordered_map>
using namespace std;
ifstream fin("secv5.in");
ofstream fout("secv5.out");
int n,l,u;
unsigned long v[1048580];
void read()
{
fin>>n>>l>>u;
for(int i=1;i<=n;i++) fin>>v[i];
}
long long solve(int x)
{
long long sol=0;
unordered_map <long long ,int> fr;
int cnt=0;
int st=1;
for (int i=1; i<=n; i++)
{
int dr=i;
fr[v[i]]++;
if (fr[v[i]]==1) cnt++;
while (cnt>x)
{
fr[v[st]]--;
if (fr[v[st]]==0)cnt--;
st++;
}
sol+=(dr-st+1);
}
fr.clear ();
return sol;
}
int main()
{
read();
if(l==1)
{
fout<<solve(u);
return 0;
}
long long s1=solve(l-1);
long long s2=solve(u);
fout<<s2-s1;
return 0;
}