Pagini recente » Cod sursa (job #39907) | Cod sursa (job #430100) | Cod sursa (job #3122005) | Cod sursa (job #3210820) | Cod sursa (job #1149343)
#include <cstdio>
#include <vector>
#include <queue>
#include <fstream>
using namespace std;
ifstream fin("divk.in");
ofstream fout("divk.out");
int main(int argc, char *argv[]) {
int k, a, b, n, c = 0, q, ant = 0;
fin >> n >> k >> a >> b;
vector<vector<int> > mod(k, vector<int>());
mod[0].push_back(0);
for (int i = 0; i < n; ++i) {
int t;
fin >> t;
int m = (ant + t) % k;
ant = m;
q = 0;
for (int j = 0; j < (int) mod[m].size() ; ++j) {
if (i - mod[m][j] + 1 >= a && i - mod[m][j] + 1 <= b) {
++q;
}
}
mod[m].push_back(i + 1);
c = c + q;
}
fout << c << endl;
fout.close();
return 0;
}