Cod sursa(job #504019)

Utilizator mgntMarius B mgnt Data 26 noiembrie 2010 12:56:40
Problema Divk Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.52 kb
#include <fstream>
using namespace std;

typedef long long int lli;
int const maxn=500*1000,maxk=100*1000;;
int S[maxn];lli C[maxk];

int main()
{	ifstream is("divk.in");
	ofstream os("divk.out");
	int N,K,A,B,i;lli s=0;is>>N>>K>>A>>B;
	for(i=0;N>i;++i){is>>S[i];}S[0]%=K;
	for(i=1;N>i;++i){S[i]=(S[i-1]+S[i])%K;}
	for(i=0;K>i;++i){C[i]=0;}
	for(i=A-1;N>i;++i)
	{	if((B+1)<=i){--C[S[i-B-1]];}
		if(A<=i){++C[S[i-A]];s+=C[S[i]];}
		if(((A-1)<=i)&&(i<=(B-1))&&(0==S[i])){++s;}
	}
	os<<s<<endl;
	return 0;
}