Cod sursa(job #615015)

Utilizator maritimCristian Lambru maritim Data 8 octombrie 2011 12:46:21
Problema Divk Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.5 kb
#include<stdio.h>

#define MaxN 500100
#define MaxK 100100

int N,K,nr,x,y,A[MaxN],B[MaxK];

int main()
{
	FILE *f = fopen("divk.in","r");
	FILE *g = fopen("divk.out","w");
	
	fscanf(f,"%d %d %d %d",&N,&K,&x,&y);
	for(int i=1;i<=N;i++)
		fscanf(f,"%d ",&A[i]);
	for(int i=1;i<=N;i++)
		A[i] = (A[i-1]+A[i])%K;
	for(int i=1;i<=N;i++)
	{
		if(i >= x)
			B[A[i-x]] ++;
		if(i > y)
			B[A[i-y-1]] --;
		nr += B[A[i]];
	}
	
	fprintf(g,"%d ",nr);
	
	fclose(g);
	fclose(f);
	return 0;
}