Pagini recente » Cod sursa (job #834285) | Cod sursa (job #683849) | Cod sursa (job #1520106) | Cod sursa (job #2856569) | Cod sursa (job #1847851)
#include <iostream>
#include <fstream>
using namespace std;
const int NMAX=1<<20;
int n,l,u,v[NMAX+5],f[NMAX+5];
long long Solve(int n);
void Wipe();
int main() {
ifstream cin("secv5.in");
ofstream cout("secv5.out");
cin>>n>>l>>u;
for(int i=1;i<=n;i++)
cin>>v[i];
cout<<Solve(u)-Solve(l-1);
return 0;
}
long long Solve(int l) {
int ans=0,length=0,st=1;
for(int dr=1;dr<=n;dr++) {
if(f[v[dr]]==0)
length++;
f[v[dr]]++;
while(length>l) {
f[v[st]]--;
if(f[v[st]]==0)
length--;
st++;}
ans+=1LL*(dr-st+1);}
Wipe();
return ans;}
void Wipe() {
for(int i=1;i<=n;i++)
f[v[i]]=0;}