Cod sursa(job #498175)

Utilizator Cristy94Buleandra Cristian Cristy94 Data 4 noiembrie 2010 12:58:04
Problema Divk Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.46 kb
#include<cstdio>

const int N=500005;

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

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("%lld\n",nrs);
}

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