Cod sursa(job #587666)

Utilizator maritimCristian Lambru maritim Data 5 mai 2011 16:03:15
Problema Divk Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.47 kb
#include<stdio.h>

int A[500001];
int B[500001];
int N;
int K;
int a;
int b;
int k;
long long MAX;

int main()
{
	FILE *f = fopen("divk.in","r");
	FILE *g = fopen("divk.out","w");
	
	fscanf(f,"%d %d %d %d",&N,&K,&a,&b);
	b -= a;
	b ++;
	for(int i=1;i<=N;i++)
	{
		fscanf(f,"%lld",&A[i]);
		B[i] = B[i-1] + A[i];
		for(int j=i-a,k = 1;j>-1 && k <= b;j--,k ++)
			if((B[i]-B[j])%K == 0)// (int)(B[i]-B[j])/K)
				MAX ++;
	}
	fprintf(g,"%llu",MAX);
	
	fclose(g);
	fclose(f);
	return 0;
}