Cod sursa(job #833210)

Utilizator elfusFlorin Chirica elfus Data 12 decembrie 2012 00:51:29
Problema Divk Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.47 kb
#include <stdio.h>

int SP[500500], now[100100];

int main()
{
	int i, N, K, A, B;
	
	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 ++)
	{
		int x;
		scanf("%d", &x);
		SP[i] = (SP[i - 1] + x) % K;
	}
	
	int sol = 0;
	for (i = A; i <= N; i ++)
	{
		now[SP[i - A]] ++;
		sol += now[SP[i]];
		if (i >= B)
			now[SP[i - B]] --;
	}
	
	printf("%d", sol);
	return 0;
}