Pagini recente » Cod sursa (job #2581353) | Cod sursa (job #3290828) | Cod sursa (job #1563645) | Cod sursa (job #2841098) | Cod sursa (job #2952357)
#include <iostream>
#include <fstream>
#include <unordered_map>
#include <algorithm>
///#include <tryhardmode>
///#include <GODMODE::ON>
using namespace std;
ifstream fin ("secv5.in");
ofstream fout ("secv5.out");
unordered_map<long long,int>mp;
const int NMAX=(1<<20);
int v[NMAX];
int main()
{
long long n,l,u,i;
fin>>n>>l>>u;
for(i=1;i<=n;i++)
fin>>v[i];
long long kon1=0,kon2=0,j=1;
long long dist1=0,dist2=0;
for(i=1;i<=n;i++)
{
mp[v[i]]++;
if(mp[v[i]]==1)
dist1++;
while(dist1>u)
{
if(mp[v[j]]==1)
dist1--;
mp[v[j]]--;
j++;
if(j>i)
break;
}
kon1=kon1+i-j+1;
}
mp.clear();
j=1;
for(i=1;i<=n;i++)
{
mp[v[i]]++;
if(mp[v[i]]==1)
dist2++;
while(dist2>l-1)
{
if(mp[v[j]]==1)
dist2--;
mp[v[j]]--;
j++;
if(j>i)
break;
}
kon2=kon2+i-j+1;
}
fout<<kon1-kon2;
return 0;
}