Pagini recente » Istoria paginii runda/uuu/clasament | Rezultatele filtrării | Rezultatele filtrării | Rezultatele filtrării | Cod sursa (job #2042934)
#include<cstdio>
#include<unordered_map>
using namespace std;
const int nmax=11e5 + 5;
typedef long long ll;
ll v[nmax];
ll n,u,l;
inline ll Sol(ll k)
{
ll i=1,j,nr,cnt = 0;
unordered_map<ll , int> HASH;
for(j=1;j<=n;++j)
{
HASH[v[j]]++;
while(HASH.size()>k)
{
nr = v[i++];
HASH[nr]--;
if(HASH[nr] == 0)
HASH.erase(nr);
}
cnt += j-i+1;
}
return cnt;
}
int main()
{
freopen("secv5.in","r",stdin);
freopen("secv5.out","w",stdout);
ll i,j;
scanf("%lld%lld%lld",&n,&l,&u);
for(i=1;i<=n;++i)
scanf("%lld",&v[i]);
printf("%lld",(Sol(u) - Sol(l-1)));
}