Cod sursa(job #2500537)

Utilizator mircearoataMircea Roata Palade mircearoata Data 28 noiembrie 2019 10:08:37
Problema Divk Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.56 kb
#pragma GCC optimize("O3")

#include <iostream>
#include <fstream>
#include <vector>

#define int long long

using namespace std;

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

int n, k, a, b, ans;

int sp[500005];
int cnt[100005];

int32_t main()
{
	ios_base::sync_with_stdio(false);
	in.tie(0);
	in >> n >> k >> a >> b;
	for (int i = 1; i <= n; i++)
	{
		int x;
		in >> x;
		sp[i] = sp[i-1] + x;
		sp[i] %= k;
		if (i - b > 0)
			cnt[sp[i - b - 1]]--;
		if (i - a >= 0)
			cnt[sp[i - a]]++;
		ans += cnt[sp[i]];
	}
	out << ans;
}