Cod sursa(job #475905)

Utilizator dornescuvladVlad Eugen Dornescu dornescuvlad Data 9 august 2010 00:52:15
Problema Divk Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include <iostream>
#include <fstream>
#define nmax 500005

using namespace std;

const char iname[] = "divk.in";
const char oname[] = "divk.out";

ifstream fin(iname);
ofstream fout(oname);

int N, K, A, B, i;
int S[nmax], V[nmax], sol, Sol[nmax]; 

int main()
{
	fin >> N >> K >> A >> B;
	for(i = 1; i <= N; i ++)
		fin >> V[i];
	for(i = 1; i <= N; i ++)
		S[i] = (S[i - 1] + V[i]) % K;
	sol = 0;
	S[0] = 0;
	for(i = A; i <= N; i ++)
	{
		++ Sol[S[i - A]];
		if(i - B  - 1 >= 0)
			-- Sol[S[i - B - 1]];
		sol += Sol[S[i]];
	}
	fout << sol;
	return 0;
}