Pagini recente » Cod sursa (job #1921189) | Cod sursa (job #2115005) | Cod sursa (job #3213352) | Cod sursa (job #310151) | Cod sursa (job #1847875)
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
const int NMAX=1<<20;
unsigned int n,l,u,v[NMAX+5],f[NMAX+5];
long long Solve(int n);
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);}
memset(f,0,sizeof(f));
return ans;}