Cod sursa(job #538407)

Utilizator tudorsTudor Siminic tudors Data 21 februarie 2011 11:56:02
Problema Divk Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.53 kb
#include <stdio.h>
#define N 500001
using namespace std;
long long k,a,b,n,x,sol;
int i;
long long V[N],T[N];
FILE *f,*g;

int main()
{
	f=fopen("divk.in","r");
	g=fopen("divk.out","w");
	
	fscanf(f,"%lld %lld %lld %lld",&n,&k,&a,&b);
	for (i=1;i<=n;++i)
	{
		fscanf(f,"%lld",&x);
		V[i]=(V[i-1]+x)%k;
	}
	sol=0;
	for (i=a;i<=b;++i)
	{
		T[V[i-a]]++;
		sol+=T[V[i]];
	}
	for (i=b+1;i<=n;++i)
	{
		T[V[i-a]]++;
		T[V[i-b-1]]--;
		sol+=T[V[i]];
	}
	fprintf(g,"%lld ",sol);
	fclose(f);
	fclose(g);
	return 0;
}