Cod sursa(job #2225240)

Utilizator vladcainamisirVlad Cainamisir vladcainamisir Data 26 iulie 2018 14:19:09
Problema Divk Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.49 kb
#include<cstdio>
const int NMAX = 100000;
const int MMAX = 500000;
int f[NMAX + 1];
int sum[MMAX + 1], n, x, a, b, k;
long long sol;
int main()
{
  freopen("divk.in","r",stdin);
  freopen("divk.out","w",stdout);
  scanf("%d%d%d%d",&n,&k,&a,&b);
  for (int i = 1; i <= n; i++) {
    scanf("%d",&x);
    sum[i] = (sum[i - 1] + x) % k;
    if (i >= a)
      f[sum[i - a]]++;
    if (i >= b + 1)
      f[sum[i - b - 1]]--;
    sol += f[sum[i]];
  }
  printf("%lld",sol);
  return 0;
}