Cod sursa(job #2350841)

Utilizator Senth30Denis-Florin Cringanu Senth30 Data 21 februarie 2019 19:03:26
Problema Divk Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.58 kb
#include <bits/stdc++.h>
#define ll long long

using namespace std;
const int NMAX = 500004;
const int KMAX = 100004;

ll N, K, A, B, sol;
ll S[NMAX], R[KMAX];

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, x; i <= N; i++){
        scanf("%d", &x);
        S[i] = S[i - 1] + x;
        if(i - B - 1 >= 0)
            R[S[i - B - 1] % K]--;
        if(i - A >= 0)
            R[S[i - A] % K]++;
        sol += R[S[i] % K];
    }

    printf("%d", sol);

    return 0;
}