Cod sursa(job #305953)

Utilizator ConsstantinTabacu Raul Consstantin Data 18 aprilie 2009 23:28:20
Problema Divk Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.44 kb
#include<stdio.h>

long int v[500001],x;
unsigned long long int sol;


int r[100001],i,j,k,l,m,n,a,b;

int main(){

	
	freopen("divk.in","r",stdin);
	freopen("divk.out","w",stdout);
	
scanf("%d %d %d %d",&n,&k,&a,&b);

for(i=1;i<=n;i++)
	{scanf("%ld",&x);
	v[i]=(v[i-1]+x)%k;
	if(i-b>0)r[v[i-b]]--;
	if(i-a>0)r[v[i-a]]++;
	sol+=(long long)r[v[i]%k];
	if(v[i]==0&&i>=a&&i<=b)sol++;
	}
	
printf("%lld",sol);
return 0;}