Cod sursa(job #248053)

Utilizator nusmaibunkeleviprofesor cicalescu nusmaibunkelevi Data 24 ianuarie 2009 19:01:34
Problema Divk Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.53 kb
#include<stdio.h>
#define NM 500001

int n;
int v[NM],r[NM];

int main(){
freopen("divk.in","r",stdin);
freopen("divk.out","w",stdout);
int i,j,nrs=0,k,a,b,x,d,k5,l;
char sir[20],*p;
scanf("%d%d%d%d\n",&n,&k,&a,&b);
k5=10*k;
l=b-a;
for(i=1;i<=n;++i){
	fgets(sir,20,stdin);
	x=0;p=sir;
	while(*p!='\n'&&*p) x=10*x+(*p-48),p++;
	v[i]=v[i-1]+x;
	if(v[i]>=k5) v[i]=v[i]%k;
	else while(v[i]>=k) v[i]-=k;
	}
for(i=a-1;i<=n;++i){
	if(i>=b) r[v[i-b]]--;
	r[v[i-a+1]]++;
	nrs+=r[v[i]];
	}
printf("%d",nrs);
return 0;
}