Cod sursa(job #246469)

Utilizator antoanelaAntoanela Siminiuc antoanela Data 20 ianuarie 2009 21:49:40
Problema Divk Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.45 kb
#include <cstdio>
#define lm 100010					 
long v[500010],d[100010],n,k,a,b,i,x,st,c;
long long s;

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