Cod sursa(job #551643)

Utilizator balakraz94abcd efgh balakraz94 Data 10 martie 2011 22:03:00
Problema Divk Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
//rezolvare n*log n - 50p
#include<cstdio>
#define infile "divk.in"
#define outfile "divk.out"
#define L 500005
using namespace std;

void rezolva();
void afiseaza();

int n;
int s[L];
long long sol=0;
int k,a,b;





void rezolva()
{
	freopen(infile,"r",stdin);
	
	int x;
	
	scanf("%d",&n);
	scanf("%d%d%d",&k,&a,&b);
	
	for(int i=1;i<=n;i++)
	{
		scanf("%d",&x);
		
		s[i]=(s[i-1]+x)%k;
		
		for(int j=a;j<=b && i-j>=0;j++)
			if(s[i-j]==s[i])
				sol++;
	}
	
	fclose(stdin);
}




void afiseaza()
{
	freopen(outfile,"w",stdout);
	
	printf("%lld",sol);
	
	fclose(stdout);
}


int main()
{
	rezolva();
	afiseaza();
	
	return 0;
}