Cod sursa(job #951770)

Utilizator tudorv96Tudor Varan tudorv96 Data 21 mai 2013 17:38:33
Problema Divk Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.48 kb
#include <fstream>
using namespace std;

#define in "divk.in"
#define out "divk.out"
#define N 500005
#define K 100005

int sp[N], n, a, b, k, f[K] = {1};
long long sol;

int main () {
	ifstream fin (in);
	fin >> n >> k >> a >> b;
	for (int i = 1; i <= n; ++i) {
		int x;
		fin >> x;
		sp[i] = (sp[i-1] + x) % k;
	}
	for (int i = a; i <= n; ++i) {
		sol += f[sp[i]];
		if (i >= b) 
			f[sp[i-b]] --;
		f[sp[i-a+1]] ++;
	}
	ofstream fout (out);
	fout << sol;
	fout.close();
	return 0;		
}