Pagini recente » Cod sursa (job #952426) | Cod sursa (job #831501) | Cod sursa (job #2806241) | Cod sursa (job #2066490) | Cod sursa (job #704894)
Cod sursa(job #704894)
#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(int 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;
}