Pagini recente » Cod sursa (job #597456) | Cod sursa (job #44346) | Cod sursa (job #3160582) | Cod sursa (job #2373433) | Cod sursa (job #329)
Cod sursa(job #329)
#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;}