Pagini recente » Istoria paginii utilizator/iuliradu | Borderou de evaluare (job #2218054) | Diferente pentru remember-mihai-patrascu/clasament intre reviziile 1 si 2 | Borderou de evaluare (job #823742) | Cod sursa (job #2576235)
#include <iostream>
#define ll long long
using namespace std;
ifstream fin("divk.in");
ofstream fout("divk.out");
ll n, k , a, b, sol, v[50010], f[100010], x;
int main()
{
fin >> n >> k >> a >> b;
for (ll i = 1; i <= n; ++i)
{
fin >> x;
v[i] = (x + v[i-1]) % k;
}
for (ll i = 1; i <= n; ++i)
{
if (i - a >= 0)
f[v[i-a]]++;
if (i - b > 0)
f[v[i-b-1]]--;
sol+= f[v[i]];
}
fout << sol;
return 0;
}