Cod sursa(job #713129)

Utilizator fhandreiAndrei Hareza fhandrei Data 14 martie 2012 11:51:29
Problema Divk Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
//Include
#include <cstdio>
using namespace std;

//Constante
const int MAX_SIZE = (int)5e5+1;

//Variabile
int n;
int A, B, k;
long long int secv;

int v[MAX_SIZE];

//Main
int main()
{
	freopen("divk.in", "rt", stdin);
	freopen("divk.out", "wt", stdout);
	
	scanf("%d%d%d%d", &n, &k, &A, &B);
	for(int i=1 ; i<=n ; ++i)
	{
		scanf("%d", &v[i]);
		v[i] += v[i-1];
	}
	
	int limita = n-A+1;
	for(int i=1 ; i<=limita ; ++i)
	{
		int limita2 = i+B;
		for(int j=i+A-1 ; j<limita2 && j<=n; ++j)
			if(!((v[j] - v[i-1]) % k))
				++secv;
	}
	
	printf("%lld", secv);
	
	fclose(stdin);
	fclose(stdout);
	return 0;
}