Pagini recente » Cod sursa (job #147399) | Cod sursa (job #3327730) | Cod sursa (job #295828) | Cod sursa (job #86107) | Cod sursa (job #3337258)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("divk.in");
ofstream fout("divk.out");
int n, k, A, B;
int a[500005], s[500005], fr[100005];
long long F(int x)
{
int i, j;
long long nrsecv = 0;
s[0] = j = 0;
fr[0] = 1;
for(i = 1; i <= n; i++)
{
s[i] = (s[i - 1] + a[i]) % k;
if(i - j > x)
{
fr[s[j]]--;
j++;
}
nrsecv += fr[s[i]];
fr[s[i]]++;
}
return nrsecv;
}
int main()
{
int i;
fin >> n >> k >> A >> B;
for(i = 1; i <= n; i++) fin >> a[i];
fout << F(B) - F(A - 1) << '\n';
return 0;
}