Cod sursa(job #502903)

Utilizator cat_red20Vasile Ioana cat_red20 Data 20 noiembrie 2010 19:13:03
Problema Divk Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.41 kb
#include<stdio.h>
int n,k,a,b,v[500100],i,l,j,nr[500100];
long long int s;
FILE *fin,*fout;
int main(){
	fin=fopen("divk.in","r");
	fout=fopen("divk.out","w");
	fscanf(fin,"%d %d %d %d",&n,&k,&a,&b);
	for(i=1;i<=n;i++){
		fscanf(fin,"%d",&v[i]);
		v[i]=(v[i]+v[i-1])%k;
	}
	nr[0]=1;
	for(i=a;i<=n;i++){
		s+=nr[v[i]];
		nr[v[i-a+1]]++;
		if(i>=b)
			nr[v[i-b]]--;
	}
	fprintf(fout,"%lld",s);
return 0;}