Pagini recente » Cod sursa (job #251937) | Cod sursa (job #1859197) | Cod sursa (job #557071) | Cod sursa (job #1538431) | Cod sursa (job #3153684)
#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];
}
int solve(int x)
{
int 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;
}
int s1=solve(l-1);
int s2=solve(u);
fout<<s2-s1;
return 0;
}