Cod sursa(job #2633847)

Utilizator KillHorizon23Orban Robert KillHorizon23 Data 8 iulie 2020 21:17:12
Problema Divk Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.55 kb
#include <bits/stdc++.h>
using namespace std;

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

typedef long long ll;
const int NMAX = 5e5 + 5;

vector<ll> s(NMAX), dp(NMAX);

int main()
{
	ios_base::sync_with_stdio(false);
	fin.tie(0);

	ll n, k, a, b, x, rez = 0;
	fin >> n >> k >> a >> b;

	for (int i = 1; i <= n; ++i)
	{
		fin >> x;
		s[i] = (s[i - 1] + x) % k;
	}

	for (int i = 1; i <= n; ++i)
	{
		if (i - a >= 0) ++dp[s[i - a]];
		if (i - b > 0) --dp[s[i - 1 - b]];
		rez += dp[s[i]];
	}

	fout << rez;
	
	return 0;
}