Pagini recente » Cod sursa (job #1955179) | Cod sursa (job #1638576) | Cod sursa (job #1727662) | Cod sursa (job #2998658) | Cod sursa (job #1459241)
#include<cstdio>
#include<map>
#define dim (1<<20) + 2
using namespace std;
int n,L,U,x,i;
long long int a, b;
unsigned int v[dim];
map<unsigned int,unsigned int> H;
long long int Secv(int nr)
{
long long int rez = 0, i, j;
for(i = 0, 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 );
}
H.clear();
return rez;
}
int main()
{
freopen("secv5.in","r",stdin);
freopen("secv5.out","w",stdout);
scanf("%d %d %d", &n, &L, &U);
for ( i = 0; i < n; i++)
scanf("%d", &v[i]);
printf("%llu",Secv(U) - Secv(L - 1));
}