Pagini recente » Cod sursa (job #1997323) | Cod sursa (job #2233811) | Cod sursa (job #1104796) | Cod sursa (job #2833369) | Cod sursa (job #704897)
Cod sursa(job #704897)
#include <stdio.h>
long n,k,a,b,v[500001],v1[100001];
long long sol;
FILE *c = fopen("divk.in","r");
FILE *s = fopen("divk.out","w");
void citeste()
{
fscanf(c,"%d %d %d %d",&n,&k,&a,&b);
for(long i=1;i<=n;i++)
{
fscanf(c,"%d ",&v[i]);
v[i] = (v[i] + v[i-1]) % k;
if(v[i] == 0 and i >= a and i <= b)
sol++;
}
}
void afisare()
{
fprintf(s,"%d",sol);
}
void solutie()
{
for(long i=a+1;i<=n;i++)
{
v1[v[i-a]]++;
if(i > b+1)
v1[v[i-b-1]]--;
sol += v1[v[i]];
}
}
int main()
{
citeste();
solutie();
afisare();
return 0;
}