Cod sursa(job #756298)

Utilizator matei_cChristescu Matei matei_c Data 9 iunie 2012 14:23:16
Problema Divk Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.51 kb
#include<cstdio>

const int MAX_N = 500011 ;

long long n,k,a,b ;
long long v[MAX_N],w[MAX_N] ;
long long sol;

int main()
{
	
	freopen("divk.in","r",stdin);
	freopen("divk.out","w",stdout);
	
	scanf("%lld%lld%lld%lld",&n,&k,&a,&b);
	
	for(long long i=1;i<=n;++i)
	{	
		scanf("%lld",&v[i]);
		v[i] = ( v[i] + v[i-1] ) % k ;
	}	
	
    for(long long i=a;i<=n;++i) 
	{
        ++ w[ v[i-a] ] ;
        if(i > b)
            -- w[ v[i-b-1] ] ;
        sol += w[ v[i] ] ;
    }
	
	printf("%lld\n",sol);
	
	return 0;

}