Cod sursa(job #712374)
| Utilizator | Data | 13 martie 2012 13:04:49 | |
|---|---|---|---|
| Problema | Divk | Scor | 10 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.55 kb |
#include <fstream>
using namespace std;
ifstream fin ("divk.in");
ofstream fout ("divk.out");
int n, k, a, b, v[500010], r[500010], sum[500010], rez;
int main() {
int i;
fin >> n >> k >> a >> b;
for (i = 1; i <= n; ++i)
fin >> v[i];
for (i = 1; i <= n; ++i)
sum[i] = sum[i - 1] + v[i];
for (i = a - 1; i <= n; ++i) {
++r[sum[i - a + 1] % k];
if (i >= b)
--r[sum[i - b] % k];
rez += r[sum[i] % k];
}
fout << rez << "\n";
fout.close();
return 0;
}
