Pagini recente » Cod sursa (job #1753165) | Cod sursa (job #2065176) | Cod sursa (job #2344019) | Cod sursa (job #1346492) | Cod sursa (job #1847857)
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
const int NMAX=1<<20;
unsigned long long n,l,u,v[NMAX+5],f[NMAX+5];
unsigned 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;
}
unsigned 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;}