Pagini recente » Cod sursa (job #1475967) | Cod sursa (job #920529) | Cod sursa (job #2643225) | Cod sursa (job #792831) | Cod sursa (job #430141)
Cod sursa(job #430141)
#include<cstdio>
#define dim 8192
#include<vector>
#define mod 666013
using namespace std;
int a,i,j,n,nr,v[1<<20+1],pz,l,u,b[1<<20+1];
char c[dim+1];
struct nod
{
vector<int> x;
vector<int> poz;
}h[mod+1];
void cit(int &x)
{
x=0;
while(c[pz]<'0'||c[pz]>'9')
if(++pz==dim) fread(c,1,dim,stdin),pz=0;
while(c[pz]>='0'&&c[pz]<='9')
{
x=x*10+c[pz]-'0';
if(++pz==dim) fread(c,1,dim,stdin),pz=0;
}
}
int main()
{
freopen("secv5.in","r",stdin);
freopen("secv5.out","w",stdout);
cit(n);
cit(l);
cit(u);
/*for(i=1;i<=n;++i)
{
cit(a);
int ind=a%mod;
int ok=0;
for(j=0;j<h[ind].x.size();++j)
if(h[ind].x[j]==a)
{
ok=1;
break;
}
if(ok)
b[i]=h[ind].poz[j];
else
{
b[i]=(++nr);
h[ind].x.push_back(a);
h[ind].poz.push_back(nr);
}
}
j=1;
nr=0;
long long rezl=0,rezu=0;
for(i=1;i<=n;++i)
{
v[b[i]]++;
if(v[b[i]]==1) nr++;
if(nr<l) rezl+=(long long)(i-j+1);
else
{
while(nr>=l)
{
v[b[j]]--;
if(!v[b[j]]) nr--;
++j;
}
rezl+=(long long)(i-j+1);
}
}
memset(v,0,sizeof(v));
nr=0;
j=1;
for(i=1;i<=n;++i)
{
v[b[i]]++;
if(v[b[i]]==1) nr++;
if(nr<=u) rezu+=(long long)(i-j+1);
else
{
while(nr>u)
{
v[b[j]]--;
if(!v[b[j]]) nr--;
++j;
}
rezu+=(long long)(i-j+1);
}
}*/
//printf("%d\n",rezu-rezl);
fclose(stdin);
fclose(stdout);
return 0;
}