Cod sursa(job #185662)

Utilizator tm_raduToma Radu tm_radu Data 25 aprilie 2008 19:22:11
Problema Divk Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include <stdio.h>
#define NM 100001

int n;
int k, a, b;
long long int s[5*NM];
int fr[NM];
long int c;
int i, j;
long long int nrsol;

int main()
{
    freopen("divk.in", "r", stdin);
    freopen("divk.out", "w", stdout);
    scanf("%d %d %d %d", &n, &k, &a, &b);
    for ( i = 1; i <= n; i++ )
    {
        scanf("%ld", &c);
        s[i] = s[i-1] + c;
	}
	for ( i = 1; i <= n; i++ )
	{
		if ( i-b-1 >= 0 ) fr[s[i-b-1]%k]--;
		if ( i-a >= 0 ) fr[s[i-a]%k]++;
        nrsol += fr[s[i]%k];
    }
    printf("%lld", nrsol);
    
    return 0;
}