Pagini recente » Cod sursa (job #2772793) | Cod sursa (job #511334) | Borderou de evaluare (job #805220) | Cod sursa (job #2591987) | Cod sursa (job #942410)
Cod sursa(job #942410)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("divk.in");
ofstream fout("divk.out");
int n, k, a, b;
int sum[500006];
int fr[100000];
long long sol;
int main()
{
fin>>n>>k>>a>>b;
long x;
for(int i=1; i<=n; i++){
fin>>x;
sum[i] = (sum[i-1] + x) % k;
}
fr[0] = 1;
for(int i=a; i<=n; i++){
sol = sol + fr[sum[i]];
if(i >= b) fr[sum[i-b]]--;
fr[sum[i-a+1]]++;
}
fout<<sol;
return 0;
}