Cod sursa(job #496382)

Utilizator Teodor94Teodor Plop Teodor94 Data 28 octombrie 2010 18:30:25
Problema Divk Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.48 kb
#include<cstdio>

const int N=500005;

int a,b,n,k,s[N],v[N],nrs;

void citire()
{
	freopen("divk.in","r",stdin);
	freopen("divk.out","w",stdout);
	scanf("%d%d%d%d",&n,&k,&a,&b);
	int x;
	for (int i=1;i<=n;++i)
	{
		scanf("%d",&x);
		s[i]=(s[i-1]+x)%k;
	}
}

void rez()
{
	v[0]=1;
	for (int i=a;i<=n;++i)
	{
		nrs+=(long long)v[s[i]];
		if (i-b>=0)
			v[s[i-b]]--;
		v[s[i-a+1]]++;
	}
	printf("%d\n",nrs);
}

int main()
{
	citire();
	rez();
	return 0;
}