Cod sursa(job #974045)

Utilizator superman_01Avramescu Cristian superman_01 Data 16 iulie 2013 13:05:18
Problema Divk Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.5 kb
#include<fstream>

#define NMAX 500005
#define KMAX 100005

using namespace std;

ifstream f("divk.in");
ofstream g("divk.out");

int sum[NMAX];
int ap[KMAX];
int N,K,a,b,Ans;

int main ( void )
{
	f>>N>>K>>a>>b;
	for( int i(1) ; i <= N ; ++i )
	{
		int x;
		f>>x;
		sum[i]=(sum[i-1]+x) % K;
	}
	for( int i(1) ; i <= N ; ++i )
	{
		if( i  >=a )
			++ap[sum[i-a+1]];
		
		if( i > b)
			--ap[sum[i-b]];
		Ans+=ap[sum[i]];
	}
	g<<Ans;
	f.close();
	g.close();
	return 0;
}