Cod sursa(job #1889051)

Utilizator mirunazMiruna Zavelca mirunaz Data 22 februarie 2017 15:38:54
Problema Divk Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.53 kb
#include <cstdio>
using namespace std;

int n, k, a, b, ct, v[500002], dp[100001];

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", &v[i]);
        v[i] += v[i-1];
        v[i] %= k;

        if (i > b){
            dp[v[i-b-1]] --;
        }

        if (i >= a){
            dp[v[i-a]] ++;
        }

        ct += dp[v[i]];

    }

    printf ("%d", ct);

    return 0;
}