Pagini recente » Cod sursa (job #1845312) | Cod sursa (job #2127078) | Cod sursa (job #1911612) | Cod sursa (job #235296) | Cod sursa (job #330)
Cod sursa(job #330)
#include<stdio.h>
#define Fin "divk.in"
#define Fout "divk.out"
#define NMAX 500001
long n,k,a,b;
long s[NMAX],r[NMAX];
long long sol,aux;
int main()
{long i,j;
FILE *in,*out;
in=fopen(Fin,"r");
fscanf(in,"%ld %ld %ld %ld",&n,&k,&a,&b);
for (i=1;i<=n;i++)
{ fscanf(in,"%ld",&s[i]);
s[i]=(s[i-1]+s[i])%k;
if (s[i]==0 && i>=a && i<=b) sol++; }
fclose(in);
out=fopen(Fout,"w");
for (i=a;i<=n;i++)
{ if (i>b+1) r[(s[i-b-1])]--;
if (i>a) r[(s[i-a])]++;
aux=r[s[i]];
sol+=(long long)aux; }
fprintf(out,"%lld\n",sol);
fclose(out);
return 0;}