Cod sursa(job #1476583)

Utilizator al.mocanuAlexandru Mocanu al.mocanu Data 25 august 2015 11:53:25
Problema Divk Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.43 kb
#include <stdio.h>
#define MAX 500005

int n, i, j, k, x, a, b, K, s[MAX], r[MAX];
long long sol;

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