Pagini recente » Cod sursa (job #2034646) | Clasament dupa rating | Monitorul de evaluare | Profil M@2Te4i | Cod sursa (job #2015613)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in ("divk.in");
ofstream out ("divk.out");
int const nmax = 500000;
int sum[1 + nmax];
int s[1 + nmax];///s[i] how many sum[j] == i are in range
int main()
{
int n , a , b ,k;
in>>n>>k>>a>>b;
long long stotal = 0;
for(int i = 1 ; i <= n ;i++){
in>>sum[i];
sum[i] = (sum[i - 1] + sum[i] ) % k;
if(a <= i){
s[sum[i - a]]++;
}
if(b < i){
s[sum[i - b - 1]]--;
}
stotal += s[sum[i]];
}
out<<stotal;
return 0;
}