Cod sursa(job #2218511)
Utilizator | Data | 4 iulie 2018 18:20:50 | |
---|---|---|---|
Problema | Divk | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.44 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("divk.in");
ofstream fout ("divk.out");
int f[100002];
int sum[500002], n, x, a, b, k;
long long sol;
int main()
{
fin >> n >> k >> a >> b;
for (int i = 1; i <= n; i++) {
fin >> x;
sum[i] = (sum[i - 1] + x) % k;
if (i >= a)
f[sum[i - a]]++;
if (i >= b + 1)
f[sum[i - b - 1]]--;
sol += f[sum[i]];
}
fout << sol;
return 0;
}