Pagini recente » Cod sursa (job #1543164) | Cod sursa (job #1046119) | Cod sursa (job #2878544) | Cod sursa (job #1653930) | Cod sursa (job #1474534)
#include<cstdio>
#include<map>
#define dim (1<<20) + 2
using namespace std;
long long n,L,U,rez,a,b;
unsigned int i,j,v[dim];
map<unsigned int, unsigned int>H;
inline long long Secv(int nr)
{
rez=0;
for(i=j=0;i<n;++i)
{
++H[v[i]];
while(H.size()>nr)
{
--H[v[j]];
if(!H[v[j]]) H.erase(v[j]);
++j;
}
rez+=1LL*(i-j+1);
}
return rez;
}
int main()
{
freopen("secv5.in","r",stdin);
freopen("secv5.out","w",stdout);
scanf("%lld %lld %lld\n",&n,&L,&U);
for(;i<n;++i) scanf("%ud",&v[i]);
a=Secv(U);
H.clear();
b=Secv(L-1);
printf("%lld",a-b);
return 0;
}