Cod sursa(job #2717550)

Utilizator DragosC1Dragos DragosC1 Data 7 martie 2021 16:26:41
Problema Divk Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.58 kb
#include <fstream>
using namespace std;

int n, k, a, b;
int v[500001];
int fr[100001];
long long sol = 0;

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

void solve() {
	int i;
	for (i = 1; i <= n; i++) {
		if (i >= a)
			fr[v[i - a]]++;
		if (i > b)
			fr[v[i - b - 1]]--;
		sol += fr[v[i]];
	}
}

void output() {
	ofstream g("divk.out");
	g << sol;
	g.close();
}

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