Cod sursa(job #2616529)
Utilizator | Ciprian Constantinescu CiprianC1 | Data | 18 mai 2020 19:42:31 |
---|---|---|---|
Problema | Divk | Scor | 90 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.53 kb |
#include <cstdio>
using namespace std;
int v[500005], rk[500005];
int main()
{
freopen("divk.in", "r", stdin);
freopen("divk.out", "w", stdout);
int n, k, a, b, ans = 0;
scanf("%d%d%d%d", &n, &k, &a, &b);
for(int i = 1; i <= n; i++) scanf("%d", &v[i]), v[i] = ((v[i] % k) + v[i - 1]) % k;
for(int i = a; i <= b; i++)
rk[v[i - a]]++, ans += rk[v[i]];
for(int i = b + 1; i <= n; i++)
rk[v[i - a]]++, rk[v[i - b - 1]]--, ans += rk[v[i]];
printf("%d", ans);
return 0;
}