Pagini recente » Cod sursa (job #1055066) | Cod sursa (job #1483460) | Cod sursa (job #1186100) | Cod sursa (job #442676) | Cod sursa (job #483066)
Cod sursa(job #483066)
#include <stdio.h>
#define NMax 5000000
#define KMax 1000000
const char IN[] ="divk.in";
const char OUT[] ="divk.out";
int start,end,N,K,A,B;
int a[NMax];
int d[KMax];
int main()
{
int i,s,Rez;
freopen(IN,"r",stdin);
freopen(OUT,"w",stdout);
scanf("%d%d%d%d",&N,&K,&A,&B);
start=0;end=-1;
s=Rez=0;
for (i=0;i<N;i++)
{
if (i>=B-A)
{
d[a[start]%K]--;
if (!(a[start]%K))
s--;
else if (d[a[start]%K]%2)
s--;
start++;
}
end++;
scanf("%d",a+end);
a[end]+= (end) ? a[end-1] : 0;
d[a[end]%K]++;
if (!(a[end]%K))
s++;
else
s+= (d[a[end]%K]+1)%2;
Rez+=s;
}
printf("%d\n",Rez);
fclose(stdin);
fclose(stdout);
return 0;
}