Cod sursa(job #951708)

Utilizator mihaiSimuSimu Mihai mihaiSimu Data 21 mai 2013 15:02:21
Problema Divk Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.55 kb
#include <fstream>
using namespace std;

long long rest[100005],val[500005];
long long n,a,b,k,count,x,ans=0;
 
int main(){
	//ifstream in("divk.in");
	//ofstream out("divk.out");
	freopen("divk.in","r",stdin);
	freopen("divk.out","w",stdout);
	//in>>n>>k>>a>>b;
	scanf("%d %d %d %d",&n,&k,&a,&b);
	for(int i=1;i<=n;i++){
		//in>>x;
		scanf("%d",&x);
		count=(count+x)%k;
		val[i]=count;
		if((i-a)>=0)
			rest[val[i-a]]++;
		if((i-b-1)>=0)
			rest[val[i-b-1]]--;
		ans+=rest[count];

	}
	//out<<ans;
	printf("%lld",ans);
	return 0;
}