Cod sursa(job #1889054)

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

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

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

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

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

        ct += dp[v[i]];

    }

    printf ("%lld", ct);

    return 0;
}