Cod sursa(job #2616529)

Utilizator CiprianC1Ciprian 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;
}