Cod sursa(job #503168)

Utilizator nbibestNeagu Bogdan Ioan nbibest Data 21 noiembrie 2010 21:09:35
Problema Divk Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.53 kb
#include <stdio.h>

using namespace std;

int n,k,i,j,f,ii,m[500001],v[500001],p[500001],a,b;
long long nr,s[500001];



int main()
{

    freopen("divk.in","r",stdin);
    freopen("divk.out","w",stdout);

    ii=1;

    scanf("%d %d %d %d",&n,&k,&a,&b);
    s[0]=0;
    for (i=1;i<=n;i++)
	{
		scanf("%d",&m[i]);
		s[i]=s[i-1]+m[i];
		v[i]=s[i] % k;
	}

    p[0]=1;
    for (i=a;i<=n;i++)
    {
		nr+=p[v[i]];
		p[v[i-a+1]]++;

		if (i>=b)
		p[v[i-b]]--;

	}

    printf("%d",nr);

    return 0;
}