Cod sursa(job #629255)

Utilizator sebii_cSebastian Claici sebii_c Data 2 noiembrie 2011 23:38:52
Problema Divk Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 0.54 kb
#include <stdio.h>
#define NMAX 500005

long long sum[NMAX];
long long mod[NMAX];

int main()
{
    freopen("divk.in", "r", stdin);
    freopen("divk.out", "w", stdout);
    int n, x;
    int i, j, A, B;
    long long res=0;
    scanf("%d %d %d %d", &n, &k, &A, &B);
    for (i=1; i<=n; ++i) {
	scanf("%d", &x);
	sum[i] = (sum[i-1]+x)%k;
    }

    for (i=1; i<=n; ++i) {
	if (i >= A)
	    ++mod[sum[i-A]];
	if (i > B)
	    --mod[sum[i-B-1]];
	res += (long long)mod[sum[i]];
    }
    printf("%lld", res);
    return 0;
}