Pagini recente » Monitorul de evaluare | Cod sursa (job #2953617) | Cod sursa (job #1613071) | Cod sursa (job #2476650) | Cod sursa (job #1704780)
#include <fstream>
#define NMax 500005
#define ll long long
using namespace std;
ifstream f("divk.in");
ofstream g("divk.out");
int n,k,x,y,a;
ll v[NMax],sum[NMax],ANS;
int main()
{
f >> n >> k >> x >> y;
for(int i = 1; i <= n; ++i){
f >> a;
sum[i] = (sum[i - 1] + a) % k;
if(i >= x)
v[sum[i - x]] ++;
if(i > y)
v[sum[i - y - 1]]--;
ANS += (1LL * v[sum[i]]);
}
g << ANS << '\n';
return 0;
}