Pagini recente » Cod sursa (job #2872200) | Cod sursa (job #2609144) | Cod sursa (job #990611) | Cod sursa (job #564823) | Cod sursa (job #2683276)
#include <bits/stdc++.h>
using namespace std;
ifstream in("secv5.in");
ofstream out("secv5.out");
typedef long long ll;
const ll lim=(1LL<<20)+5;
unordered_map<ll,ll> m;
ll v[lim],n;
ll f[lim];
ll nr(ll d)
{
ll ans=0;
if(d==0) return ans;
memset(f,0,sizeof(f));
ll cnt=0,st=1;
for(ll dr=1;dr<=n;++dr)
{
if(f[v[dr]]==0)
cnt++;
f[v[dr]]++;
if(cnt<=d) ans+=(dr-st+1);
else
{
while(cnt>d)
{
f[v[st]]--;
if(f[v[st]]==0) --cnt;
++st;
}
ans+=(dr-st+1);
}
}
return ans;
}
int main()
{
ll l,u,r=0;
in>>n>>l>>u;
for(ll i=1;i<=n;++i)
{
in>>v[i];
if(m[v[i]]==0)
m[v[i]]=++r,v[i]=r;
else v[i]=m[v[i]];
}
m.clear();
out<<nr(u)-nr(l-1)<<'\n';
return 0;
}