Cod sursa(job #529861)

Utilizator rares192Preda Rares Mihai rares192 Data 6 februarie 2011 13:32:03
Problema Divk Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include<fstream>
using namespace std;

void read();
void solve();

int n, k, a, b, v[500001], s[500001];

int main()
{
	read();
	solve();
	return 0;
}

void read()
{
	ifstream fin("divk.in");
	fin >> n >> k >> a >> b;
	
	for(int i = 1; i <= n; ++i)
	{
		fin >> v[i];
		v[i] = (v[i-1] + v[i] ) % k;
	}
	
	fin.close();
}

void solve()
{
	ofstream fout("divk.out");
	long long nr = 0;
	s[0] = 1;
	
	for(int i = a; i <= n; ++i)
	{
		nr += s[ v[i] ];
		s[ v[ i-a+1 ] ]++;
		if( i >= b)
			s[ v[i-b] ]--;
	}
	
	fout << nr;
	fout.close();
}