Pagini recente » Cod sursa (job #2404489) | Cod sursa (job #2921164) | Cod sursa (job #2585340) | Profil Elaspiri | Cod sursa (job #1148897)
#include <cstdio>
#include <vector>
#include <fstream>
using namespace std;
ifstream fin("divk.in");
ofstream fout("divk.out");
int main(int argc, char *argv[]) {
int k, a, b, n;
fin >> n >> k >> a >> b;
vector<int> s(n + 1, 0);
vector<int> eq(n, 0);
int p = 0;
for (int i = 0; i < n; ++i) {
int t;
fin >> t;
s[i + 1] = (s[i] + t) % k;
int c = 0;
for (int j = p; i - j + 1 >= a; ++j) {
if (s[i + 1] == s[j]) {
++c;
}
}
eq[i] = c;
if (i - p + 1 >= b){
++p;
}
}
int c = 0;
for (int i = 0; i < n; ++i) {
c = c + eq[i];
}
fout << c << endl;
fout.close();
return 0;
}