Cod sursa(job #2225240)
| Utilizator | 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;
}
