Pagini recente » Borderou de evaluare (job #3332121) | Cod sursa (job #2561897) | Cod sursa (job #2547142) | Cod sursa (job #1926326) | Cod sursa (job #3313671)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("divk.in");
ofstream fout ("divk.out");
int s[500005];
int fr[500005];
int main()
{
int n,k,a,b;
fin >> n >> k >> a >> b;
for (int i=1;i<=n;++i){
fin >> s[i];
s[i] += s[i-1];
s[i] = s[i]%k;
}
int ans = 0;
for (int i=1;i<=n;++i){
int j1 = i-a+1;
int j2 = i-b-1;
//cout << j2 << ' ' << j1 << " | ";
if (j1>0) fr[s[j1]]++;
if (j2>0) fr[s[j2]]--;
ans += fr[s[i]];
//cout << fr[s[i]] << '\n';
}
fout << ans;
return 0;
}