Cod sursa(job #756295)

Utilizator matei_cChristescu Matei matei_c Data 9 iunie 2012 14:18:28
Problema Divk Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.48 kb
#include<cstdio>

const int MAX_N = 500011 ;

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

int main()
{
	
	freopen("divk.in","r",stdin);
	freopen("divk.out","w",stdout);
	
	scanf("%d%d%d%d",&n,&k,&a,&b);
	
	for(long long i=1;i<=n;++i)
	{	
		scanf("%d",&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("%d\n",sol);
	
	return 0;

}