Pagini recente » Cod sursa (job #364873) | Cod sursa (job #2233157) | Cod sursa (job #1007942) | Cod sursa (job #2680261) | Cod sursa (job #3350053)
/*
*/
#include <bits/stdc++.h>
#define ll long long
const int NMAX=(1<<20)+8;
int n,l,r;
ll a[NMAX];
ll get_ans(int x) {
if(x==0)
return 0;
std::unordered_map<ll,int> curr;
ll ans=0;
int dr=1,cnt=0;
for(int st=1; st<=n; st++) {
while(dr<=n) {
curr[a[dr]]++;
if(curr[a[dr]]==1)
cnt++;
if(cnt>x){
curr[a[dr]]--;
cnt--;
break;
}
dr++;
}
ans+=(dr-st);
curr[a[st]]--;
if(curr[a[st]]==0)
cnt--;
}
return ans;
}
int main()
{
std::ifstream fin("secv5.in");
std::ofstream fout("secv5.out");
fin >> n >> l >> r;
for(int i=1; i<=n; i++)
fin >> a[i];
fout << get_ans(r)-get_ans(l-1) << "\n";
return 0;
}