Cod sursa(job #1497609)

Utilizator aimrdlAndrei mrdl aimrdl Data 6 octombrie 2015 23:44:11
Problema Divk Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.45 kb
#include <stdio.h>
#include <iostream>


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