Pagini recente » Borderou de evaluare (job #1330761) | Cod sursa (job #77469) | Cod sursa (job #1406863) | Cod sursa (job #2410235) | Cod sursa (job #3276186)
#include <bits/stdc++.h>
using namespace std;
long long int v[2000005];
unordered_map<long long,int> f;
int main()
{
ifstream cin("secv5.in");
ofstream cout("secv5.out");
int n,a,b;
cin>>n>>a>>b;
for(int i=1;i<=n;++i)
{
cin>>v[i];
}
long long int c1=0,c2=0;
int nr=0;
int j=1;
for(int i=1;i<=n;++i)
{
f[v[i]]++;
if(f[v[i]]==1)
{
++nr;
}
while(nr>b)
{
f[v[j]]--;
if(f[v[j]]==0)
{
--nr;
}
++j;
}
c1=c1+i-j+1;
}
nr=0;
f.clear();
j=1;
--a;
for(int i=1;i<=n;++i)
{
f[v[i]]++;
if(f[v[i]]==1)
{
++nr;
}
while(nr>a)
{
f[v[j]]--;
if(f[v[j]]==0)
{
--nr;
}
++j;
}
c2=c2+i-j+1;
}
cout<<c1-c2;
return 0;
}