Cod sursa(job #1097095)

Utilizator roby2001Sirius roby2001 Data 2 februarie 2014 23:07:25
Problema Divk Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.46 kb
/* 
    Keep It Simple!
*/

#include<stdio.h>

#define MaxN 500005

int N,K,A,B;
long long X[MaxN],Sol[MaxN],Final;

int main()
{
	freopen("divk.in","r",stdin);
	freopen("divk.out","w",stdout);

	scanf("%d%d%d%d",&N,&K,&A,&B);

	int aux;

	for(int i=1; i<=N; i++)
	{
		scanf("%lld",&X[i]);
		X[i] = ( X[i-1]+X[i] )%K;

		if ( i >= A)
			Sol[X[i-A]]++;
		if ( i > B )
			Sol[X[i-B-1]]--;
		Final+=Sol[X[i]];
	}
	printf("%lld",Final);
}