Cod sursa(job #615019)

Utilizator maritimCristian Lambru maritim Data 8 octombrie 2011 12:52:49
Problema Divk Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.51 kb
#include<stdio.h>

#define MaxN 500100
#define MaxK 100100

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

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]);
		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 += (long long)B[A[i]];
	}
	
	fprintf(g,"%llu ",nr);
	
	fclose(g);
	fclose(f);
	return 0;
}