Cod sursa(job #196020)

Utilizator nusmaibunkeleviprofesor cicalescu nusmaibunkelevi Data 23 iunie 2008 22:40:25
Problema Divk Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include<stdio.h>
#define NMAX 500001

int main(){
freopen("divk.in","r",stdin);
freopen("divk.out","w",stdout);
long int  v[NMAX],d;
int n,i,j,nrs=0,k,a,b,c,x;
scanf("%d%d%d%d",&n,&k,&a,&b);
v[0]=0UL;
for(i=1;i<=n;++i){
	scanf("%d",&x);
	if(x>=k) x=x%k;
	v[i]=v[i-1]+x;
	if(v[i]>=k) v[i]=v[i]-k;
	}
c=n-a+1;
for(j=a;j<=b;++j)
	for(i=j;i<=n;++i){
		d=v[i]-v[i-j];
	   //	if(d<0) d=-d;
		if(d==0||d==k||d==-k) {nrs++;
		  /*	for(f=i-j+1;f<=i;++f)
				printf("%llu ",v[f]-v[f-1]);
			printf("\n");*/
			}
		}


printf("%d",nrs);
return 0;
}